GitHub Actions: pinact で uses: をコミット SHA に固定する
uses: actions/checkout@v4 のようなタグ指定は、タグを付け替えられると中身が変わる。セキュリティのためにはコミットハッシュで固定すべきで、pinact run を使えばワークフローを一括で書き換えられる。
手順
bash
pinact run # .github/workflows/*.yml の uses: を SHA 固定に書き換え
pinact run -u # 最新バージョンの SHA に更新書き換え後のイメージ:
yaml
- uses: actions/checkout@<40桁のSHA> # v4.x.x- バージョンはコメントに残るので、人が読んでも分かる。
- Renovate や Dependabot を使えば、SHA 固定のまま更新 PR を受け取れる。
注意点
- SHA 固定は「中身が勝手に変わらない」だけで、元のアクションが安全かどうかは別問題。信頼できるアクションだけを使う。
- 組織の設定で「SHA 固定を必須」にすることもできる(GitHub の Actions ポリシー)。