Skip to content

GitHub Actionsをコミットハッシュでピン留めする方法

GitHub Actionsではコミットハッシュでの固定が推奨されるが、2025年8月時点ではピン留めするための公式ツールは何も提供されていない。手動で調べてハッシュを書くのも現実的ではないので、pinact というコマンドを使ってピン留めする方法をまとめる。

まずはツールをインストールする。

Terminal window
go install github.com/suzuki-shunsuke/pinact/cmd/pinact@latest

リポジトリ配下で pinact run を実行すればいい。

Terminal window
pinact run

あとはDependabotやRenovateで正しく更新ができる。

ところで、ハッシュの後ろにコメントでバージョンを表記する事例を非常によく見る。

- uses: actions/setup-go@xxxx # v5.0.0

どうやらこの記述によって挙動が異なるようで、Dependabotならメジャーバージョンを表記しておくだけで、Pull Requestの概要に「どのバージョンからアップデートするのか」を拾ってくれるようだけど、Renovateはマイナーバージョンまでなければアップデート元のバージョンを拾えないらしい。

従来のタグでバージョンを参照する方法では、メジャーバージョンだけで参照しておけばマイナーアップデートはPull Requestをマージする必要さえなかったのだが、ハッシュ参照に変わったおかげでメジャーバージョン表記だろうがパッチバージョンまで表記していようが関係なく、アクションに更新があれば必ずPull Requestのマージが必要になった。そのため、手間は変わらないのでパッチバージョンまで厳密に特定する方が良いだろうが、pinact は何もしなければマイナーバージョンまでをコメントとして残してくれるので、とくに気にする必要はない。

特に変わったことは必要ない。Dependabot等がPull Requestを作ってくるので、今まで通りマージすればよい。