GitHub Actions security analysis of the top 10,000 repositories, by Fabian Kammel
The new best practice
actions.lockIn October 2026 GitHub introduced workflow lockfiles. A lockfile records the exact commit of every Action a workflow uses, including the Actions those Actions use, while your workflows keep readable tags.
actions.lockuses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: stay mutable# workflow
uses: actions/checkout@v4
# .github/workflows/actions.lock
actions/checkout@v4: b4ffde65f4...
gh extension install github/gh-actions-lock
gh actions-lock
Both Renovate
and Dependabot
already have (experimental) support for action lockfiles and regenerate actions.lock in their update pull requests.
gh actions-lock --verify-local
Then audit with zizmor (1.32+ reads the lockfile).
History
Since 2024 we track how many of the top 10,000 repositories pin their Actions by SHA. It is still a valid hardening step, but lockfiles are more powerful and user-friendly and recommended going forward.
| Scan | PinnedFully pinned | Locked | PartialPartially | Unpinned | Uses Actions | Data |
|---|
Pinning and locking fix one class of problem. We also ran zizmor, a GitHub Actions security analyzer, over every workflow. This uncovered 347,954 findings over the ~10,000 scanned repositories. Browse them per repository and rule.
Open the explorer →