Skip to content

fix(ci): pin third-party actions to full commit SHAs - #112

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/sha-pin-actions
Sep 19, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
fix/sha-pin-actions

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

fix(ci): pin third-party actions to full commit SHAs

The account's Actions policy requires a full-length SHA ref. A tag or branch ref is refused at
startup — startup_failure, no jobs, "this workflow graph cannot be shown" — so these workflows
could not run at all. This resolves each ref to the commit it currently points at and records the
ref in a trailing comment, e.g. actions/checkout@<sha> # v4.

dtolnay/rust-toolchain takes its toolchain from the ref itself, so those steps also gained an
explicit with: toolchain: input; without it, a SHA ref would silently lose the channel.

No behaviour is intended to change beyond the pins.

The account's Actions policy requires a full-length SHA ref. A tag or branch ref is refused at
startup — `startup_failure`, no jobs, "this workflow graph cannot be shown" — so these workflows
could not run at all. This resolves each ref to the commit it currently points at and records the
ref in a trailing comment, e.g. `actions/checkout@<sha> # v4`.

`dtolnay/rust-toolchain` takes its toolchain from the ref itself, so those steps also gained an
explicit `with: toolchain:` input; without it, a SHA ref would silently lose the channel.

No behaviour is intended to change beyond the pins.
@coderabbitai

coderabbitai Bot commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 7bc72ca0-eded-4a42-9ae9-f17c719018d9

📥 Commits

Reviewing files that changed from the base of the PR and between 986576d and e745963.

📒 Files selected for processing (18)
  • .github/workflows/boj-build.yml
  • .github/workflows/codeql.yml
  • .github/workflows/dependabot-automerge.yml
  • .github/workflows/dogfood-gate.yml
  • .github/workflows/guix-nix-policy.yml
  • .github/workflows/instant-sync.yml
  • .github/workflows/openssf-compliance.yml
  • .github/workflows/pages.yml
  • .github/workflows/push-email-notify.yml
  • .github/workflows/quality.yml
  • .github/workflows/release.yml
  • .github/workflows/rhodibot.yml
  • .github/workflows/rsr-antipattern.yml
  • .github/workflows/runtime-policy.yml
  • .github/workflows/security-policy.yml
  • .github/workflows/static-analysis-gate.yml
  • .github/workflows/wellknown-enforcement.yml
  • .github/workflows/workflow-linter.yml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (9)
  • GitHub Check: governance / Validate Hypatia Baseline
  • GitHub Check: governance / Security policy checks
  • GitHub Check: governance / Exemption ratchet
  • GitHub Check: governance / Language / package anti-pattern policy
  • GitHub Check: governance / Code quality + docs
  • GitHub Check: governance / Trusted-base reduction policy
  • GitHub Check: governance / Debt ratchet
  • GitHub Check: governance / Well-Known (RFC 9116 + RSR)
  • GitHub Check: scan / Hypatia Neurosymbolic Analysis
🔇 Additional comments (18)
.github/workflows/boj-build.yml (1)

20-20: LGTM!

.github/workflows/dependabot-automerge.yml (1)

58-58: LGTM!

.github/workflows/guix-nix-policy.yml (1)

24-24: LGTM!

.github/workflows/instant-sync.yml (1)

20-20: LGTM!

.github/workflows/openssf-compliance.yml (1)

23-23: LGTM!

.github/workflows/push-email-notify.yml (1)

43-43: LGTM!

.github/workflows/rhodibot.yml (1)

37-37: LGTM!

.github/workflows/rsr-antipattern.yml (1)

27-27: LGTM!

.github/workflows/runtime-policy.yml (1)

40-40: LGTM!

.github/workflows/security-policy.yml (1)

24-24: LGTM!

.github/workflows/wellknown-enforcement.yml (1)

28-28: LGTM!

.github/workflows/workflow-linter.yml (1)

27-27: LGTM!

.github/workflows/codeql.yml (1)

31-31: LGTM!

Also applies to: 34-34, 40-40

.github/workflows/pages.yml (1)

23-23: LGTM!

Also applies to: 25-25, 42-42, 55-55

.github/workflows/quality.yml (1)

25-25: LGTM!

Also applies to: 41-41, 49-49

.github/workflows/release.yml (1)

25-25: LGTM!

Also applies to: 88-88, 118-118, 131-131, 140-140

.github/workflows/static-analysis-gate.yml (1)

26-26: LGTM!

Also applies to: 131-131, 152-152, 159-159, 266-266, 287-287, 354-354, 378-378, 384-384, 390-390, 452-452

.github/workflows/dogfood-gate.yml (1)

29-29: LGTM!

Also applies to: 42-42, 73-73, 90-90, 122-122, 186-186, 244-244, 309-309


📝 Summary

Summary by CodeRabbit

  • Security
    • Workflow actions are now pinned to immutable commit references, improving build reproducibility and protection against unexpected upstream changes.
    • Existing workflow versions and behaviour remain unchanged.

Walkthrough

This PR replaces mutable GitHub Actions tags and branches with immutable commit SHAs across 19 workflow files. Existing action versions, comments, job logic, conditions, and configuration remain unchanged.

Changes

Workflow action pinning

Layer / File(s) Summary
Baseline workflow action pins
.github/workflows/boj-build.yml, .github/workflows/dependabot-automerge.yml, .github/workflows/guix-nix-policy.yml, .github/workflows/instant-sync.yml, .github/workflows/openssf-compliance.yml, .github/workflows/push-email-notify.yml, .github/workflows/rhodibot.yml, .github/workflows/rsr-antipattern.yml, .github/workflows/runtime-policy.yml, .github/workflows/security-policy.yml, .github/workflows/wellknown-enforcement.yml, .github/workflows/workflow-linter.yml
The workflows now reference their existing actions by commit SHA instead of mutable tags or branches.
Multi-action workflow pins
.github/workflows/codeql.yml, .github/workflows/pages.yml, .github/workflows/quality.yml, .github/workflows/release.yml, .github/workflows/static-analysis-gate.yml
The workflows pin checkout, analysis, artefact, page deployment, release, EditorConfig, and BEAM actions by commit SHA. Existing job behaviour remains unchanged.
Dogfood validator pins
.github/workflows/dogfood-gate.yml
All checkout steps and both ecosystem validator actions use commit SHAs. The existing job structure and version comments remain unchanged.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~15 minutes

Change: Bug fix

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the purpose and intended scope, but it does not follow the required template. It omits the Summary, Changes, RSR Quality Checklist, Testing, and Screenshots sections, includin… Rewrite the description using the repository template. Add the required Summary and Changes sections, complete each applicable RSR Quality Checklist item, and document the testing performed. Add Screenshots or terminal output if applicable.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: pinning third-party CI actions to full commit SHAs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the purpose and intended scope, but it does not follow the required template. It omits the Summary, Changes, RSR Quality Checklist, Testing, and Screenshots sections, including the required checklist status and test information.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks each workflow line
Immutable pins now neatly align
Tags stay noted in comments bright
Jobs keep their former flight
The burrow hops through builds tonight

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath enabled auto-merge (squash) September 19, 2026 23:16
@hyperpolymath
hyperpolymath merged commit 60cfa1a into main Sep 19, 2026
23 of 26 checks passed
@hyperpolymath
hyperpolymath deleted the fix/sha-pin-actions branch September 19, 2026 23:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant