依存関係のピン留めとは?
依存関係のピン留めとは、柔軟なバージョン範囲ではなく、依存関係の正確なバージョン、あるいはコンテンツハッシュまでを指定するプラクティスです。ピン留めされた依存関係は、upstreamのメンテナが新しいリリースを公開しても、知らないうちに変わることはありません。これによりビルドが再現可能になり、サイレントで潜在的に悪意のある更新をブロックします。
なぜ重要か
浮動的なバージョン範囲は、ビルドが突然新しい、テストされていない、あるいは侵害されたリリースを取り込む可能性があることを意味します。ピン留め、特にGitHub Actionsをハッシュや特定のコミットに固定することで、CIがレビューした正確なコードを実行することが保証され、これはサプライチェーンの重要な防御です。
関連する概念
- lockfileは推移的依存を自動的にピン留めする
- ActionsをコミットのSHAに固定するとworkflowが堅牢になる
- 自動更新を予測可能性と引き換えにする
関連ガイド
What Is a Lockfile?A lockfile records the exact resolved versions and hashes of every dependency, so installs are deterministic…
What Is a Transitive Dependency?A transitive dependency is one you do not require directly but pull in indirectly because a dependency of you…
What Is a Software Supply Chain Attack?A supply chain attack compromises software by tampering with a dependency, build system, or distribution chan…