Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@
^CONTRIBUTING\.md$
^docs$
^docs/.*
^registered_agents\.json$
^task_agent_mapping\.json$
38 changes: 38 additions & 0 deletions .github/workflows/security-audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Security Audit (private-safe)

on:
push:
branches: ["master", "main"]
pull_request:
branches: ["master", "main"]

permissions:
contents: read

jobs:
secret-and-workflow-audit:
runs-on: ubuntu-latest

steps:
- name: Harden runner
uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e
with:
egress-policy: audit

- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5

- name: Install gitleaks
run: |
curl -sSLo gitleaks.tar.gz "https://github.com/gitleaks/gitleaks/releases/download/v8.24.2/gitleaks_8.24.2_linux_x64.tar.gz"
tar -xzf gitleaks.tar.gz gitleaks
chmod +x gitleaks

- name: Run secret scan (gitleaks)
run: |
./gitleaks detect --source . --no-git --redact --exit-code 1

- name: Validate workflows
run: |
curl -sSL https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash | bash -s -- 1.7.10

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Pin actionlint installer script to immutable revision

This step pipes and executes https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash, so every run trusts whatever is on the moving main branch at that moment; if upstream changes or is compromised, CI will execute unreviewed code and private-repo source can be exposed from the runner. This also conflicts with the pinned-workflow guardrail in /workspace/aFIPC/AGENTS.md ("Keep .github/workflows/ green and action SHAs pinned"). Use a commit-pinned URL (or vendor the script) so the executed installer is reproducible and auditable.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved by removing the mutable installer-script pipeline from main and using versioned release assets with checksum verification.

./actionlint
Comment thread
coderabbitai[bot] marked this conversation as resolved.
1 change: 1 addition & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ R objects (data frame/matrix/model), and outputs are returned as an R list.

- `r.yml`: R CMD check workflow
- `code-quality.yml`: Markdown/YAML/workflow quality checks
- `security-audit.yml`: private-repo-compatible secret and workflow audit
- `codeql.yml`: Code scanning workflow for Actions language
- `dependency-review.yml`: dependency policy gate on pull requests
- `scorecard.yml`: supply-chain posture check and SARIF upload
Expand Down
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ Package: aFIPC
Type: Package
Title: Automated Fixed Item Parameter Linking
Version: 0.1.0
Author: Seongho Bae
Maintainer: Seongho Bae <seongho@kw.ac.kr>
Authors@R: person(given = "Seongho", family = "Bae", role = c("aut", "cre"),
email = "seongho@kw.ac.kr")
Description: Automates fixed item parameter linking for test linking under
the item response theory paradigm using mirt package estimates.
License: GPL-3 | file LICENSE
Imports: mirt
Suggests: testthat (>= 3.0.0)
Encoding: UTF-8
LazyData: true
Config/testthat/edition: 3
RoxygenNote: 6.0.1
Loading
Loading