-
-
Notifications
You must be signed in to change notification settings - Fork 0
fix(ci): pin third-party actions to full commit SHAs #123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -24,10 +24,12 @@ jobs: | |
| release-readiness: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v7.0.1 | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
|
|
||
| - name: Setup Rust toolchain | ||
| uses: dtolnay/rust-toolchain@v1 | ||
| uses: dtolnay/rust-toolchain@02cb101ec7c40f2c49e1d9714d64511d8e1b74de # v1 | ||
| with: | ||
| toolchain: v1 | ||
| with: | ||
| toolchain: stable | ||
|
Comment on lines
+31
to
34
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: for f in finishingbot rhodibot seambot; do echo "=== $f ==="; grep -n -A6 -B3 'rust-toolchain' .github/workflows/$f.yml; doneRepository: hyperpolymath/ubicity Length of output: 1345 🌐 Web query:
💡 Result: <search_synthesis> <source_evidence> Citations:
Keep one Each Rust setup step contains two
🧰 Tools🪛 YAMLlint (1.37.1)[error] 33-33: duplication of key "with" in mapping (key-duplicates) 🤖 Prompt for AI Agents |
||
|
|
||
|
|
@@ -44,7 +46,7 @@ jobs: | |
| git -C "$RUNNER_TEMP/gitbot-fleet" checkout "$GITBOT_FLEET_REF" | ||
|
|
||
| - name: Cache dependencies | ||
| uses: Swatinem/rust-cache@v2.9.2 | ||
| uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 | ||
| with: | ||
| workspaces: ${{ runner.temp }}/gitbot-fleet/bots/finishingbot | ||
|
|
||
|
|
@@ -88,7 +90,7 @@ jobs: | |
|
|
||
| - name: Upload results | ||
| if: always() | ||
| uses: actions/upload-artifact@v7.0.1 | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: finishingbot-results | ||
| path: finishingbot-results.txt | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -40,7 +40,7 @@ jobs: | |
| timeout-minutes: 5 | ||
| steps: | ||
| - name: Send push notification email | ||
| uses: hyperpolymath/smtp-notify-action@v0.3.0 # NOSONAR — pin authority is actions.lock (sha1-ede1191ef6ff3ac02c4f4d9efdf837ee517e11d7) | ||
| uses: hyperpolymath/smtp-notify-action@22e7bdb322c430c1d0dac6b3bb307f4bb139d0be # NOSONAR — pin authority is actions.lock (sha1-ede1191ef6ff3ac02c4f4d9efdf837ee517e11d7) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: sed -n '1,20p' .github/workflows/actions.lock
rg -n 'sha1-|NOSONAR' .github/workflows/ | head -40Repository: hyperpolymath/ubicity Length of output: 3011 🌐 Web query:
💡 Result: <search_synthesis> <source_evidence> Citations:
Regenerate the lockfile, then refresh the inline SMTP authority note. A single unscoped 🤖 Prompt for AI Agents |
||
| with: | ||
| server_address: ${{ secrets.SMTP_HOST }} | ||
| server_port: ${{ secrets.SMTP_PORT }} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: hyperpolymath/ubicity
Length of output: 39692
🤖 get_repo_knowledge executed:
get_repo_knowledge hyperpolymath/ubicity /tmp/coderabbit-repo-knowledge/hyperpolymath-ubicity-58c0e2d5Length of output: 544
🏁 Script executed:
Repository: hyperpolymath/ubicity
Length of output: 32916
🏁 Script executed:
Repository: hyperpolymath/ubicity
Length of output: 32883
🌐 Web query:
official gh actions-lock lockfile documentation stale action reference workflow pin authority💡 Result:
<search_synthesis>
The GitHub Actions lockfile system is an ongoing effort by GitHub to provide a mechanism for pinning and verifying workflow dependencies [1][2]. The primary tools and documentation for this system are maintained in the following repositories: gh-actions-lock: A GitHub CLI extension used to generate, maintain, and verify the lockfile [1]. It scans workflows, pins actions to specific commit SHAs, and records them in a lockfile located at.github/workflows/actions.lock [1][3]. actions-lockfile: The authoritative repository defining the lockfile format (schema) and providing a Go parser for auditing and verifying action pins [2][4]. Key aspects of the lockfile system include: Functionality: The lockfile records the resolved transitive dependency graph for a repository&
#39;s workflows [2]. When a workflow is onboarded, the system enforces that all dependencies are present in the lockfile and that the locked commit is what executes on the runner [1]. Verification: The system verifies lockfiles for forgeries, ensures the locked SHA exists in the referenced repository, and blocks redirects or mismatches at runtime [1]. Stale References: If workflow references (e.g., tags or branches) drift ahead of the recorded lockfile, the lockfile enforcement will reject the workflow [5]. To resolve this, you must re-run the gh actions-lock extension to update the lockfile with the new SHAs [1][5]. Status: The project is currently in a preview/development phase [1][6]. The schema and parser are evolving toward a stable v1.0.0 release, and behavior may change [2][4]. Separately, GitHub provides official security guidance recommending that all third-party actions be pinned to a full-length commit SHA to mitigate supply chain risks [7][8]. While the lockfile system provides an automated way to manage these pins, organizations can also enforce SHA pinning via repository or organization-level policies, which can be configured to fail any workflow that uses an unpinned action [8]. Dependabot and other tools can be used to manage these pins by tracking version updates in comments (e.g., @<sha> # v1.2.3) [9][10].</search_synthesis>
<source_evidence>
Citations:
Regenerate the generated action lockfile.
.github/workflows/boj-build.ymlusesactions/checkoutatv7.0.1, but.github/workflows/actions.lockrecordsv4.1.7. Rungh actions-lockand commit the updated lockfile. Do not edit the generated file by hand.🤖 Prompt for AI Agents