GitHub Actionsではコミットハッシュでの固定が推奨される
GitHub Actionsをもっと安全に、もっと便利に運用する方法を読んで、GitHubは公式にハッシュを使って各アクションのバージョンを固定することを推奨しているのだと知った。Secure use reference#Using third-party actionsによると、
You can help mitigate this risk by following these good practices:
- Pin actions to a full-length commit SHA
タグは変更されうるのでハッシュを推奨する事情は分かるけれど、Actionsとしてあるべき機能が欠如している都合をユーザーに押し付けていて印象が非常によくない。とはいえ、タグを使い続けることもリスクなので、今後はハッシュで指定していく方が望ましいのだろう。具体的にどうやってピン留めするのかはGitHub Actionsをコミットハッシュでピン留めする方法に書いた。
GitHub ReleasesのImmutable Releasesを使うと、上記の「タグが勝手に置き換えられる問題」は発生しなくなるので、今後はこれを前提にするといいのだろうが、まだ過渡期なので頼り切るのもできない。
ハッシュ値による参照を必須とする
Section titled “ハッシュ値による参照を必須とする”2025年8月にハッシュ参照を強制するオプションもリリースされたので設定しておくといい。
GitHub Actionsを再利用する場合、参照する側のリポジトリでハッシュを強制すると、呼び出すアクションもハッシュが必須となる。サードパーティ製のアクションを使っている場合は、自分のコントロール外になってしまうので慎重に適用するといい。例えば一部のワークフローでgovulncheck-actionを使っているが、2025年10月時点では govulncheck-action にタグを使ってバージョンを参照するコードが含まれているので、上記オプションを有効にするとエラーとなってワークフローを実行できない。