GitHub Changelogは、ワークフローに書いたタグやブランチが後から別のコミットを指すと、リポジトリを変更せずに別のコードが走ると説明している。公開プレビューのロックファイルは、実行をレビュー済みのコミットへ結びつける。ロックしたこと自体は、その依存が安全であることの証明にはならない。入れる前に中身を確認する。
GitHub CLIの拡張gh actions-lockで、.github/workflows/actions.lockを生成する。記録されるのはアクションとその推移的依存、再利用ワークフローの依存で、コミットとして差分をレビューできる。導入はワークフロー単位だ。一度対象にすると、その依存はロックファイルに必須になり、Actionsは記録されたコミットを使う。タグやブランチが後から動いても、実行対象は変わらない。ファイルを書き換えずに、ロックが古くないかをCIで検査することもできる。
Enterprise、Organization、リポジトリの管理者は、Require lockfileポリシーでロックファイルの使用を必須にできる。このポリシーも公開プレビューである。すでにロックへ載せたワークフローについてDependabotがバージョン更新のプルリクエストを開くと、同じプルリクエストで対応するロックエントリも作り直す。追加の設定は要らない。
サードパーティのActionをタグ参照のままにしているリポジトリでは、レビューしたSHAと実際に走るSHAがずれる余地が残る。拡張でロックファイルを作り、一部のワークフローから載せ、必須ポリシーは差分を見てから広げるのが扱いやすい。