Pin apache/infrastructure-actions to its released tags - #70623
Open
potiuk wants to merge 2 commits into
Open
Conversation
Until now these pins named a commit with no version behind it, and the allowlist-check one tracked whatever main happened to be. The upstream repository has since started tagging each action under its own prefix, so the pins can name a real release and Dependabot can offer bumps for them the way it already does for every other action.
potiuk
requested review from
amoghrajesh,
ashb,
bugraoz93,
gopidesupavan,
jason810496 and
jscheffl
as code owners
July 28, 2026 13:31
The suppression existed because that pin carried a "# main" comment, which can never match the commit it names. Now that it names a released tag, zizmor resolves the comment to exactly the pinned commit and reports nothing, so the workflow can be checked like every other one.
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.
apache/infrastructure-actions#1032 added tag-based, per-action releases to that repository — each action is now tagged under its own prefix (
allowlist-check/vX.Y.Z,save/vX.Y.Z,restore/vX.Y.Z, plus moving…/v1majors). Its recommended consumption is a SHA pin carrying the tag as a comment, which is what Dependabot needs to offer bumps.Our pins predate that. All 16
stash/saveandstash/restoreuses sat on49df447b, a commit with no version behind it, andallowlist-checkwas pinned to4e9c961fwith a bare# maincomment — i.e. tracking whatever main happened to be at the time it was written.This moves all 17 pins to
61dcea11f19e2bbe1263f14d72235e8da17d3ad0, the commit the initialv1.0.0tags of all three actions point at, and names the tag in the comment:61dcea11is 686 commits ahead of the pin it replaces, tipped by the release-automation commit itself:The zizmor suppression goes away
.github/zizmor.ymlsuppressedref-version-mismatchforasf-allowlist-check.yml, because a# maincomment can never resolve to the commit it names. A real tag can, so the suppression is deleted and that workflow is audited like every other one.Verified rather than assumed — zizmor resolves the prefixed tags correctly. With the suppression removed:
and, as a control that the audit really was running rather than silently skipping, the same pin with a deliberately bogus tag is still caught:
zizmor reads tags from the git refs API and peels annotated tags, so
save/v1.0.0resolves to61dcea11…— exactly the pinned commit.Line-length exemptions
Nine pins needed
# yamllint disable-line rule:line-length. A 40-character SHA plus the action path already runs to ~100 columns, so any trailing comment crosses the 110 limit. These lines passed before only because yamllint'sallow-non-breakable-wordsexempts a line that is a single unbreakable token — adding the comment introduces a space and forfeits that. Keeping the comment on the same line is deliberate: Dependabot only reads it there.Unrelated, but noticed while verifying
zizmor picks its suggested tag with
max_by_key(|t| t.name.len())over every tag at the commit, with no awareness of which action inside the repo is used. For this monorepo that means astash/savepin is told it "is pointed to by tagallowlist-check/v1.0.0" — a sibling action's version — and that is offered as an auto-fix. Nothing in this PR depends on it, but do not accept that particular auto-fix if you see it.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 5) following the guidelines