Skip to content

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

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

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: 19941dae-ddf0-4f86-9153-3a640a8a06e7

📥 Commits

Reviewing files that changed from the base of the PR and between e681e2a and 60073fc.

📒 Files selected for processing (17)
  • .github/workflows/codeql.yml
  • .github/workflows/dependabot-automerge.yml
  • .github/workflows/dogfood-gate.yml
  • .github/workflows/guix-nix-policy.yml
  • .github/workflows/index-freshness.yml
  • .github/workflows/ingest.yml
  • .github/workflows/instant-sync.yml
  • .github/workflows/jekyll-gh-pages.yml
  • .github/workflows/jekyll.yml
  • .github/workflows/push-email-notify.yml
  • .github/workflows/quality.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
  • .github/workflows/zig-ffi.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. (17)
  • GitHub Check: governance / Well-Known (RFC 9116 + RSR)
  • GitHub Check: governance / Trusted-base reduction policy
  • GitHub Check: governance / Language / package anti-pattern policy
  • GitHub Check: governance / Licence consistency
  • GitHub Check: governance / Workflow security linter
  • GitHub Check: governance / Exemption ratchet
  • GitHub Check: governance / Live Actions policy (credentialed advisory)
  • GitHub Check: governance / Check Workflow Staleness
  • GitHub Check: governance / Debt ratchet
  • GitHub Check: governance / Allowlist Preflight
  • GitHub Check: governance / Security policy checks
  • GitHub Check: governance / Code quality + docs
  • GitHub Check: governance / Guix packaging policy (Nix retired)
  • GitHub Check: scan / rust-secrets
  • GitHub Check: scan / shell-secrets
  • GitHub Check: scan / gitleaks
  • GitHub Check: scan / Hypatia Neurosymbolic Analysis
🔇 Additional comments (17)
.github/workflows/codeql.yml (1)

30-39: LGTM!

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

59-59: LGTM!

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

24-24: LGTM!

.github/workflows/index-freshness.yml (1)

39-39: LGTM!

.github/workflows/ingest.yml (1)

32-32: LGTM!

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

21-21: LGTM!

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

26-26: LGTM!

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

41-41: 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)

28-28: LGTM!

.github/workflows/zig-ffi.yml (1)

40-40: LGTM!

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

43-43: 🔒 Security & Privacy | 🛡️ Analyzed with Security Review

Align the SMTP action pin with the recorded authority.

The uses: value pins hyperpolymath/smtp-notify-action to 22e7bdb322c430c1d0dac6b3bb307f4bb139d0be, but the trailing comment identifies sha1-ede1191ef6ff3ac02c4f4d9efdf837ee517e11d7 as the actions.lock authority. Make the pin and authority agree. Retain the v0.3.0 reference if the current SHA is approved. This action receives SMTP_HOST, SMTP_USER, and SMTP_PASS, so an incorrect pin can run an unapproved action revision with those credentials.

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

30-30: LGTM!

Also applies to: 43-43, 74-74, 91-91, 123-123, 187-187, 247-247

.github/workflows/jekyll-gh-pages.yml (1)

33-33: LGTM!

Also applies to: 35-35, 37-37, 77-77, 94-94

.github/workflows/jekyll.yml (1)

38-38: LGTM!

Also applies to: 41-41, 48-48, 56-56, 68-68

.github/workflows/quality.yml (1)

25-25: LGTM!

Also applies to: 41-41, 49-49


📝 Summary

Summary by CodeRabbit

  • Chores
    • Pinned automated workflow actions to specific immutable versions, improving build and deployment reproducibility.
    • Retained existing workflow triggers, checks, validation steps, and behaviour.

Walkthrough

The pull request replaces mutable GitHub Actions tags and branch references with immutable commit SHAs across 17 workflow files. Existing version comments, workflow steps, triggers, and job logic remain unchanged.

Changes

Workflow action pinning

Layer / File(s) Summary
Standard workflow action pins
.github/workflows/codeql.yml, .github/workflows/dependabot-automerge.yml, .github/workflows/guix-nix-policy.yml, .github/workflows/index-freshness.yml, .github/workflows/ingest.yml, .github/workflows/instant-sync.yml, .github/workflows/push-email-notify.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, .github/workflows/zig-ffi.yml
Action references now use fixed commit SHAs. Version comments remain present.
Dogfood validation action pins
.github/workflows/dogfood-gate.yml
Checkout and ecosystem validation actions in all dogfood jobs now use fixed commit SHAs. Job logic is unchanged.
Pages and quality workflow pins
.github/workflows/jekyll-gh-pages.yml, .github/workflows/jekyll.yml, .github/workflows/quality.yml
Build, deployment, checkout, and validation actions now use fixed commit SHAs. Build settings and job behaviour remain unchanged.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~10 minutes

Change: Bug fix

Suggested reviewers: metadatastician

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarises the main change: pinning CI actions to full commit SHAs.
Description check ✅ Passed The description directly explains the SHA pinning, the Actions policy requirement, and the intended preservation of workflow behaviour.
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.

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 action pin,
Fixed at commit, safe to begin.
Tags remain in comments bright,
Workflows keep their former flight.
Hop, hop—the builds run right.

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

@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit 0617335 into main Sep 19, 2026
21 of 22 checks passed
@hyperpolymath
hyperpolymath deleted the fix/sha-pin-actions branch September 19, 2026 23:22
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