ci: pin third-party GitHub Actions to immutable commit SHAs
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 1.6k
- Forks
- 438
- PR merge metrics
- No merged PRs in 30d
Description
Problem
The repository currently has 49 external GitHub Action references across 18 workflow/composite-action files that use mutable tags such as @v5 or @v3. Five other external action references are already pinned to full 40-character commit SHAs.
A moved or compromised upstream tag can therefore change code executed by CI without a change in this repository. GitHub recommends pinning actions to full-length commit SHAs as the only immutable release reference.
The E2B monorepo adopted the same hardening in e2b-dev/E2B#1646 on August 7, 2026.
Proposed change
- Resolve every existing external action tag to its current 40-character commit SHA.
- Preserve the human-readable release tag in a trailing comment.
- Leave local
./.github/...action and reusable-workflow references unchanged. - Keep this behavior-preserving: pin current versions without unrelated major-version upgrades.
- Add an automated validation that no external action reference remains mutable, or document a follow-up update mechanism if maintainers prefer keeping this patch purely mechanical.
Validation
- Parse every changed workflow and composite action as YAML.
- Verify every external
uses:value is a 40-character SHA. - Run the repository CI checks applicable to workflow-only changes.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by enumerating the 18 workflow and composite-action files and locating all external uses: references, separating mutable tags from local ./.github/... references. Resolve the 49 mutable references to current 40-character commit SHAs while preserving release tags in comments, then parse changed files as YAML and verify every external reference is immutable. Run the repository CI checks applicable to workflow-only changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions
- Domain
- ci-cd, security
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100