Skip to content

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 にタグを使ってバージョンを参照するコードが含まれているので、上記オプションを有効にするとエラーとなってワークフローを実行できない。