Lockfile Actions sudah GA: arti centang hijau bisa berbeda

Dev
Tayangan 2

PR bisa tetap menampilkan versi uses yang sama sementara kode di baliknya berubah. Tag dapat dipindahkan ke commit lain. GitHub mengumumkan ketersediaan umum lockfile pada 28 Oktober. Setelah pratinjau, hal yang perlu dipahami adalah bukti yang diberikan setiap pemeriksaan.

Referensi mudah dibaca, commit tetap tercatat

.github/workflows/actions.lock menghubungkan referensi action dengan commit yang dijalankan. Berkas dibuat dengan gh actions-lock untuk Free, Team, dan GitHub Enterprise Cloud termasuk residensi data. Workflow dapat diikutkan satu per satu. Tinjau berkas hasil generator bersama perubahan workflow, alih-alih merakitnya manual.

Dalam contoh rekaan, demo/build@v1 mula-mula menunjuk A lalu B. Resolusi referensi saja dapat memilih kode berbeda saat dijalankan lagi; lockfile memilih commit tercatat. Gambar ini bukan pengujian repositori nyata. Commit yang tidak lagi dapat dicapai dari tag atau branch tercatat bisa ditolak saat eksekusi.

Contoh referensi rekaan buatan sendiri: perpindahan v1 dibandingkan commit tercatat. Bukan tangkapan eksekusi Actions nyata.
Contoh referensi rekaan buatan sendiri: perpindahan v1 dibandingkan commit tercatat. Bukan tangkapan eksekusi Actions nyata.

Apa yang dibuktikan pemeriksaan luring?

gh actions-lock --verify-local memeriksa cakupan tanpa jaringan: apakah referensi uses memiliki entri. Cocok sebelum commit, tetapi tidak memverifikasi asal kode. gh actions-lock --verify memeriksanya secara daring, lalu runner memeriksa lagi saat job dimulai. Dua centang hijau itu memiliki makna berbeda.

Jika PR lain menambah action tanpa memperbarui lockfile, pemeriksaan lokal dapat menemukan entri yang hilang. Kelengkapan entri tidak membuktikan asal atau keamanan kode. Gambar kedua merangkum dokumentasi; CLI tidak dipasang atau dijalankan untuk artikel ini.

Perbandingan buatan sendiri berdasarkan dokumentasi resmi: cakupan luring dengan --verify-local dan asal daring dengan --verify. Bukan keluaran eksekusi.
Perbandingan buatan sendiri berdasarkan dokumentasi resmi: cakupan luring dengan --verify-local dan asal daring dengan --verify. Bukan keluaran eksekusi.

Workflow pakai ulang memiliki batas repositori

Dependensi action transitif tercakup, tetapi pemanggilan melalui jobs.<job_id>.uses tidak dikunci oleh lockfile. Gunakan SHA commit lengkap untuk panggilan itu. Action internalnya mengikuti lockfile repositori tempat workflow didefinisikan, bukan repositori pemanggil.

Bayangkan repositori aplikasi memanggil workflow deployment dari repositori platform. actions.lock aplikasi saja tidak menunjukkan pin action milik platform. SHA panggilan dan perubahan dependensi platform harus dibaca bersama. Image runner, input, dan secret juga tetap terpisah: commit action tetap tidak membekukan seluruh lingkungan.

Baca dua berkas dalam PR pembaruan

Saat Dependabot memperbarui versi action pada workflow yang telah diikutkan, entri lockfile terkait dibuat ulang dalam PR yang sama. Versi yang mudah dibaca bisa dibandingkan dengan commit sebenarnya. --relock memajukan referensi yang berpindah dan menulis berkas, berbeda dari verifikasi baca saja. Peninjauan kode tetap diperlukan.

Require lockfile dapat mewajibkan adopsi tanpa menghapus batas antarrepositori. Memulai dari satu workflow membantu memahami pembuatan, peninjauan, dan verifikasi daring. Pada centang hijau berikutnya, perhatikan bukti tepatnya: cakupan entri, asal kode, atau peninjauan kode yang dipilih.

Sumber dan bacaan lanjutan

GitHub Changelog · 2026-10-28

GitHub Docs · Workflow dependency lockfiles

GitHub · gh-actions-lock