Skip to content

feat(ci): actions.lock via the standards canonical process (D4) - #73

Merged
hyperpolymath merged 3 commits into
mainfrom
feat/d4-actions-lock
Sep 1, 2026
Merged

feat(ci): actions.lock via the standards canonical process (D4)#73
hyperpolymath merged 3 commits into
mainfrom
feat/d4-actions-lock

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Closes debt D4 of docs/sitrep-2026-09-01.adoc: actions.lock generated and validated by the standards canonical process (not hand-written).

What's here (3 commits)

  1. dtolnay/rust-toolchain: inline SHA → @v1 tag + explicit toolchain: stable. The old SHA 4be9e76 is unreachable from any branch/tag (dtolnay force-moves toolchain branches), so gh actions-lock refuses it outright, and it only worked because that commit's action.yml happened to default to stable. @v1 + explicit input is the estate-proven shape (groove#35, cleave#24).
  2. All 12 remaining direct-action inline SHAs → release tags. --verify-local treats inline SHAs as blocking sha-as-ref findings, and the lockfile is the enforcement layer anyway. 11 of 12 tags have digests byte-identical to the old inline SHAs (proven by the relock resolver). The exception: dawidd6/action-send-mail's old # pinned SHA was an unreleased master commit (a deps bump ahead of the release); the tag moves it to the actual v3.12.0 release commit. Several old comments were lies — # v3 on repository-dispatch was actually v4.0.1.
  3. actions.lock from standards/scripts/update-actions-lock.sh (gh actions-lock v0.1.6, COMPLETE=true), plus hand-added bare [] entries for the four pure reusable-caller workflows (governance, hypatia-scan, mirror, secret-scanner) — v0.1.6 doesn't recognise reusable uses: paths; bare [] is the proven-live shape in hypatia's and standards' own lockfiles and survives regeneration.

Validation

  • gh actions-lock --verify-local: valid, zero findings
  • standards/scripts/check-lockfile-drift.sh: clean, 14 workflows
  • Under-declaration check: no workflow with real uses: lines has an empty entry (the blocky-writer trap)
  • Workflows byte-identical through generation (the script restores authored bytes); SPDX still line 1 on all 14
  • sha_pinning_required is false on this repo, so tag refs are safe; the lock is the pin

Known follow-on

Future Dependabot bumps must regenerate the lock in the same PR, or the run dies at startup (the lock, not the workflow, wins ref-mismatch conflicts — and splat-tag drift resolution can silently revert bumps).

🤖 Generated with Claude Code

hyperpolymath and others added 3 commits September 1, 2026 23:07
… input

The inline SHA 4be9e76 is unreachable from any branch or tag (dtolnay
force-moves toolchain branches), so lockfile generation refuses it and
the pin only works today because that commit's action.yml happens to
default to stable. The v1 tag + explicit toolchain: stable is the
estate-proven shape (groove#35, cleave#24); actions.lock will carry the
resolved SHA.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
actions.lock becomes the pinning layer (D4): gh actions-lock records the
resolved SHA per tag and GitHub enforces the match at startup. Inline
SHAs made --verify-local emit blocking sha-as-ref warnings and per
estate findings can drop actions from lock coverage. 11 of 12 tags have
digests byte-identical to the previous inline SHAs (proven by the
relock resolver); the exception is dawidd6/action-send-mail, whose old
'# pinned' SHA was an unreleased master commit (a deps bump, ahead of
the release) — the tag ref deliberately moves it back to the actual
v3.12.0 release commit. Several old trailing comments were stale
(# v3 on repository-dispatch was actually v4.0.1) — comments beside
pins are decoration, not evidence.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ss (D4)

Generated by standards/scripts/update-actions-lock.sh (gh actions-lock
v0.1.6, MODE=update, COMPLETE=true), then the four pure reusable-caller
workflows (governance, hypatia-scan, mirror, secret-scanner) were given
bare '[]' entries by hand — v0.1.6 does not recognise reusable-workflow
uses: paths, and the bare-[] shape is the proven-live one in hypatia's
and standards' own lockfiles; regeneration preserves such entries.
Validated: gh actions-lock --verify-local reports valid with zero
findings; check-lockfile-drift.sh clean over all 14 workflows. Closes
debt D4 of docs/sitrep-2026-09-01.adoc.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 17 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: 37708db1-2df3-49ef-9571-99b99e9cb687

📥 Commits

Reviewing files that changed from the base of the PR and between 7e3e34d and de49ddc.

⛔ Files ignored due to path filters (1)
  • .github/workflows/actions.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • .github/workflows/boj-build.yml
  • .github/workflows/casket-pages.yml
  • .github/workflows/codeql.yml
  • .github/workflows/instant-sync.yml
  • .github/workflows/pages.yml
  • .github/workflows/push-email-notify.yml
  • .github/workflows/quality-gates.yml
  • .github/workflows/workflow-linter.yml

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

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

@hyperpolymath
hyperpolymath merged commit 1ac7e41 into main Sep 1, 2026
27 checks passed
@hyperpolymath
hyperpolymath deleted the feat/d4-actions-lock branch September 1, 2026 22:23
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