Skip to content

ci: pin GitHub Actions to commit SHAs; add Dependabot#6

Merged
Technologicat merged 2 commits into
masterfrom
harden/pin-actions-sha
Jun 11, 2026
Merged

ci: pin GitHub Actions to commit SHAs; add Dependabot#6
Technologicat merged 2 commits into
masterfrom
harden/pin-actions-sha

Conversation

@Technologicat

Copy link
Copy Markdown
Owner

Supply-chain hardening (fleet pilot — wlsqm has the widest action set, so it goes first).

What

  • Every uses: in ci.yml is pinned to a full 40-char commit SHA + trailing # vX.Y.Z comment, replacing floating major tags (and the release/v1 branch for gh-action-pypi-publish).
  • Adds .github/dependabot.yml (github-actions ecosystem, weekly) — wlsqm had none.

Why

A floating tag/branch can be silently repointed if an action's repo or a maintainer account is compromised (cf. the tj-actions/changed-files incident, March 2025). A commit SHA is immutable. Dependabot understands SHA-pinned actions: it bumps both the SHA and the version comment, so pinning does not freeze the actions — security updates still arrive as reviewable PRs.

Behavior

Pins resolve to the exact commits the floating refs pointed to at pin time, so CI runs identical code. Pure hardening, no functional change.

Action SHA Version
actions/checkout df4cb1c v6.0.3
actions/setup-python a309ff8 v6.2.0
actions/upload-artifact 043fb46 v7.0.1
actions/download-artifact 3e5f45b v8.0.1
ilammy/msvc-dev-cmd 0b201ec v1.13.0
pypa/cibuildwheel 8d2b08b v3.4.1
pypa/gh-action-pypi-publish cef2210 v1.14.0

🤖 Generated with Claude Code

Technologicat and others added 2 commits June 11, 2026 19:40
Supply-chain hardening. Every `uses:` in ci.yml now pins a full 40-char
commit SHA with a trailing `# vX.Y.Z` comment, instead of a floating
major tag (or, for gh-action-pypi-publish, the `release/v1` branch). A
mutable ref can be silently repointed by an attacker who compromises an
action's repo or a maintainer account; a SHA pin cannot. The pins
resolve to the exact commits the floating refs pointed to at pin time,
so CI behavior is unchanged.

Add .github/dependabot.yml (github-actions ecosystem, weekly) — wlsqm
had none. Dependabot updates SHA-pinned actions and bumps the version
comment alongside, so pinning does not freeze the actions: security
fixes still flow in as reviewable PRs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Go-latest fleet policy: pin to the newest release rather than the
commit the floating tag happened to point at. v4.0.0 is the release
vetted in this session (PyPA/henryiii, multi-week RC cadence); it's
already green on pylu and pydgq with the same meson-python + MSVC
Windows setup wlsqm uses.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Technologicat Technologicat merged commit fa79b49 into master Jun 11, 2026
12 checks passed
@Technologicat Technologicat deleted the harden/pin-actions-sha branch June 11, 2026 17:29
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