Skip to content

Pin workflow actions to commit SHAs - #46

Merged
norman-abramovitz merged 2 commits into
masterfrom
pin-actions
Jul 31, 2026
Merged

Pin workflow actions to commit SHAs#46
norman-abramovitz merged 2 commits into
masterfrom
pin-actions

Conversation

@norman-abramovitz

Copy link
Copy Markdown
Contributor

Pins every workflow uses: reference (16 across ci.yml, codeql.yml, scorecard.yml) to a full commit SHA, with the release version as a trailing comment — the format Dependabot reads and rewrites, so updates keep flowing.

action pinned at version
actions/checkout 3d3c42e5 v7.0.1
actions/setup-go b7ad1dad v7.0.0
github/codeql-action/* f205ea1c v4.37.4
golangci/golangci-lint-action ba0d7d2e v9.3.0
ossf/scorecard-action 2d114668 v2.4.4

Each SHA is the peeled target of the tag the workflow previously floated on, so this changes which commit runs not at all — only whether upstream can move it later.

Churn control: SHA pins turn every upstream release into an update rather than only major bumps, so dependabot.yml gains a groups: stanza collapsing all action bumps into one weekly PR.

Why reverse the earlier tag-pin decision: the 16 resulting Scorecard findings sat permanently open as medium-severity code-scanning alerts, burying anything new that lands on that tab. This resolves the Pinned-Dependencies half of #45 (expected 0 → 10 on the next Scorecard run, auto-closing those alerts); the Code-Review half remains.

Verified locally: make actionlint and make changelog-check pass; zizmor reports zero findings (previously 16 unpinned-uses).

Also carries the v1.24.0 fragment sweep commit, riding along with the next PR as make changelog-sweep instructs.

A tag can be moved after the fact; a commit SHA cannot. Every `uses:`
now names the full SHA of the release the previous tag resolved to,
with that version as a trailing comment — the format Dependabot reads
and rewrites, so updates keep flowing. SHA pins turn every upstream
release into an update rather than only major bumps, so Dependabot's
action bumps are grouped into a single weekly PR to keep the churn at
today's level.

Reverses the 2026-07-27 decision to accept tag refs: the 16 resulting
Scorecard alerts sat permanently open on the code-scanning tab, burying
anything new that lands there. Clears zizmor's unpinned-uses findings
and should take Scorecard's Pinned-Dependencies check from 0 to 10.

@norman-abramovitz norman-abramovitz left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Done to improve the best practices badge

@norman-abramovitz
norman-abramovitz merged commit 2bb88e1 into master Jul 31, 2026
6 checks passed
@norman-abramovitz
norman-abramovitz deleted the pin-actions branch July 31, 2026 14: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