GitHub Actionsをコミットハッシュでピン留めする方法
GitHub Actionsではコミットハッシュでの固定が推奨されるが、2025年8月時点ではピン留めするための公式ツールは何も提供されていない。手動で調べてハッシュを書くのも現実的ではないので、pinact というコマンドを使ってピン留めする方法をまとめる。
インストール
Section titled “インストール”まずはツールをインストールする。
go install github.com/suzuki-shunsuke/pinact/cmd/pinact@latestピン留めの実行
Section titled “ピン留めの実行”リポジトリ配下で pinact run を実行すればいい。
pinact runあとはDependabotやRenovateで正しく更新ができる。
ところで、ハッシュの後ろにコメントでバージョンを表記する事例を非常によく見る。
- uses: actions/setup-go@xxxx # v5.0.0どうやらこの記述によって挙動が異なるようで、Dependabotならメジャーバージョンを表記しておくだけで、Pull Requestの概要に「どのバージョンからアップデートするのか」を拾ってくれるようだけど、Renovateはマイナーバージョンまでなければアップデート元のバージョンを拾えないらしい。
従来のタグでバージョンを参照する方法では、メジャーバージョンだけで参照しておけばマイナーアップデートはPull Requestをマージする必要さえなかったのだが、ハッシュ参照に変わったおかげでメジャーバージョン表記だろうがパッチバージョンまで表記していようが関係なく、アクションに更新があれば必ずPull Requestのマージが必要になった。そのため、手間は変わらないのでパッチバージョンまで厳密に特定する方が良いだろうが、pinact は何もしなければマイナーバージョンまでをコメントとして残してくれるので、とくに気にする必要はない。
アクションの更新
Section titled “アクションの更新”特に変わったことは必要ない。Dependabot等がPull Requestを作ってくるので、今まで通りマージすればよい。