ci-tooling
2026-04-01
Pin all GitHub Actions to SHA digests with centralized version manifest
13 files · 302+ · 69-
SHA-pin all GitHub Action references
11 files changed
python-ci.ymlPin checkout to v6.0.2 SHA, setup-python to v6.2.0 SHA, setup-uv to v8.0.0 SHA, codecov-action to v6.0.0 SHA, upload-artifact to v7.0.0 SHA across all job matrices.python-release.ymlPin checkout, upload-artifact, and download-artifact to SHA digestspython-security.ymlPin checkout, setup-python, setup-uv, upload-artifact, gitleaks to SHAstest-actions.ymlPin checkout to SHA in all four test jobstest-minimal.ymlPin checkout to SHAaction.ymlPin setup-python and setup-uv to SHAsaction.ymlPin softprops/action-gh-release to v2.6.1 SHAaction.ymlPin setup-python, setup-uv, upload-artifact to SHAsaction.ymlPin checkout to SHAaction.ymlPin checkout to SHAaction.ymlPin setup-python, setup-uv, and actions/cache to SHAs
- Every third-party action reference across 11 workflow and action files is now pinned to an immutable commit SHA, preventing supply chain attacks via mutable tag overwrites. Version comments are preserved for human readability.
harden
behavioral
4 files
python-ci.ymlpython-release.ymlpython-security.ymlaction.yml
Centralized version manifest and update script
2 files changed
action-versions.ymlNew YAML manifest defining canonical SHA pins for all GitHub Actions (checkout, setup-python, setup-uv, upload/download-artifact, codecov, gitleaks, gh-release, cache) and pre-commit hook versions.update-action-versions.pyNew script that reads action-versions.yml and applies SHA-pinned versions to workflow files and pre-commit configs in any target repository, with --actions and --pre-commit flags.
- The update script uses regex replacement to swap action refs across arbitrary repos, enabling one-command version bumps across the entire ecosystem from the ci-tooling source of truth.
instantiate
architectural
2 files
update-action-versions.pyaction-versions.yml