ci: pin every third-party action to a full-length commit SHA - #1046
Draft
sirtimid wants to merge 2 commits into
Draft
ci: pin every third-party action to a full-length commit SHA#1046sirtimid wants to merge 2 commits into
sirtimid wants to merge 2 commits into
Conversation
The org now refuses any action referenced by tag:
The action actions/checkout@v7 is not allowed in
Consensys-Incorporated/ocap-kernel because all actions must be pinned
to a full-length commit SHA.
That is a setup-job failure, so it takes down every job that references
one before a step runs. Nothing has run green in this repository since
2026-09-03; the policy was turned on after the last commit that touched
CI, which is why merging main does not help.
Each tag is replaced by the commit it currently resolves to, with the
release it names in a trailing comment. Dependabot reads that comment,
so `github-actions` updates keep working and arrive as a SHA bump.
Local `./.github/...` references are exempt and left alone.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both were already pinned by SHA, so the policy was satisfied, but neither named
the release it points at, leaving a reader to resolve the hash by hand.
anthropics/claude-code-action c9ec2b02 -> v1.0.28
davelosert/vitest-coverage-report-action 5b6122e3 -> v2.9.0
Dependabot's `github-actions` allow list covers only `actions/*` and
`MetaMask/*`, so neither gets an automated bump either way. The comment is for
people.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consensys-Incorporatedrequires every action reference to name a commit. The policy took effect after the last CI change landed, so nothing has run green here since #1042 on 2026-09-03, and mergingmaindoes not help —mainis broken the same way:That is a setup-job failure, so it takes down every job referencing a tag before a step runs.
All 37 third-party references now name a commit, with the release in a trailing comment. No version changes: every SHA is what the tag it replaces resolves to today. Local
./.github/...references are exempt and untouched.This does not turn CI green on its own
The policy resolves actions transitively, and the MetaMask composite actions we call reach mutable tags one layer down. Pinning the call site does not reach them:
So
Check changelog,Lint (no code changes), and everything underLint, build, and teststill fail on this branch, which meansAll jobs passstays red and this cannot merge as it stands. It is worth landing as a unit anyway: it is the half that is uncontroversial, mechanically verifiable, and needed under either resolution.Two ways to finish, neither in scope here:
actions/*andMetaMask/*and drop the SHA requirement. The allow list alone does not help: GitHub applies the pinning policy to every action regardless of allow-list status — "this includes actions from your organization and actions authored by GitHub" — and the references that fail are alreadyactions/*. Only reusable workflows are exempt from pinning.Separately,
better-sqlite312.x aborts on Node 24.20 during teardown, so the test jobs will need #1043's bump to13.0.3before they pass even once the action policy is settled.Checked
uses:left unpinned, and none without a version commentprettier --checkclean across all workflow and action filesactionlintis not evidence for any of this: 1.6.25 discovers only.github/workflows.