Skip to main content
Back to articles

GitHub Actions เปิด Workflow Lockfiles ล็อก Commit ของ Action ใน CI

GitHub Actions เปิด public preview ของ workflow dependency lockfiles เพื่อให้ tag อ่านง่ายแต่รัน commit ที่ตรวจแล้ว พร้อม Dependabot และนโยบายบังคับระดับองค์กร

GitHub Actions เปิด Workflow Lockfiles ล็อก Commit ของ Action ใน CI

GitHub ประกาศเมื่อวันที่ 14 ตุลาคม 2026 ว่า workflow dependency lockfiles สำหรับ GitHub Actions เปิด public preview แล้ว แนวคิดคือให้ทีมยังอ้าง action ด้วย tag หรือ branch ที่อ่านง่ายใน workflow แต่ตอนรันจริงใช้ commit ที่บันทึกไว้ใน lockfile เพื่อลดความเสี่ยงจาก tag ที่เลื่อนไปยังโค้ดใหม่โดยที่ไฟล์ workflow ในรีโปไม่เปลี่ยน ข่าวนี้เกี่ยวข้องกับทุกทีมที่ให้ CI เข้าถึง secret, package registry หรือสิทธิ์ deploy เพราะ action ภายนอกถือเป็นโค้ดที่รันในบริบทงานของทีม

ปัญหา tag เลื่อนเกิดอย่างไร

หลาย workflow เขียน uses: โดยอ้าง tag รุ่นหลัก เช่น some-action@v4 เพื่อให้ตามการแก้ไขในรุ่นนั้นได้สะดวก แต่ tag หรือ branch เปลี่ยนปลายทางได้ในภายหลัง หากเจ้าของ action ถูกโจมตีหรือเผยแพร่โค้ดที่มีปัญหา รอบ CI ถัดไปอาจรันโค้ดอีกชุดโดยไม่มี diff ในรีโปของเรา การ pin ด้วย commit SHA แก้ปัญหานี้ได้ แต่ทำให้ workflow อ่านยากและการอัปเดตต้องจัดการหลายตำแหน่ง lockfile เป็นทางเลือกให้แยกชื่ออ้างอิงที่มนุษย์อ่านออกจาก commit ที่ระบบต้องรันอย่างแน่นอน

GitHub ระบุว่าไฟล์ .github/workflows/actions.lock บันทึก commit ของ action, dependency ที่ action ใช้ต่อ และ reusable workflow ที่เกี่ยวข้อง เมื่อ onboarding workflow แล้ว dependency ของ workflow นั้นต้องมีรายการใน lockfile ครบ มิฉะนั้น GitHub Actions จะไม่ปล่อยให้รันโดยอาศัยเวอร์ชันที่ไม่ได้ล็อก ประโยชน์คือสามารถตรวจ commit ที่เปลี่ยนใน pull request ได้ชัด และรอบรันต่างเวลายังคงอ้างโค้ดเดียวกันจนกว่าทีมจะยอมรับการอัปเดต

เริ่มใช้แบบค่อยเป็นค่อยไป

ประกาศแนะนำ extension ชื่อ gh actions-lock สำหรับ GitHub CLI เพื่อสร้างและดูแล lockfile ทีมไม่จำเป็นต้องย้ายทุก workflow พร้อมกัน สามารถเลือก workflow ที่มีสิทธิ์สูง เช่น publish package หรือ deploy production ก่อน เมื่อ extension สร้างไฟล์แล้วควร review ทั้ง workflow ที่เปลี่ยนและ commit ที่ถูกล็อก ก่อน commit เข้าสาขาหลัก การมีไฟล์เพิ่มไม่ได้รับรองว่า action ปลอดภัยตั้งแต่ต้น หากเลือก dependency อันตรายมาล็อกก็ยังรันโค้ดอันตรายซ้ำอย่างสม่ำเสมอ

GitHub ยังมีคำสั่งตรวจว่า lockfile เก่าหรือไม่โดยไม่แก้ไฟล์ ซึ่งเหมาะสำหรับทำ CI check ให้ทีมเห็นว่าแก้ workflow แล้วลืมอัปเดต lockfile หรือเปล่า นอกจากนี้ผู้ดูแลระดับ enterprise, organization และ repository สามารถใช้ Require lockfile policy ใน public preview เพื่อบังคับการใช้งานตามขอบเขตที่กำหนด ก่อนเปิด policy กับทุกรีโปควรตรวจ workflow ที่มี action ภายนอกจำนวนมากและ reusable workflow ข้ามรีโป เพราะการบังคับทันทีอาจทำให้ pipeline หยุดหาก lockfile ยังไม่ครบ

อัปเดตอย่างไรไม่ให้ค้างเวอร์ชัน

การ pin dependency แลกความคาดเดาได้กับภาระการอัปเดต หากล็อกแล้วไม่แตะอีกเลย ทีมจะพลาด security fix ของ action GitHub ระบุว่า Dependabot ช่วยอัปเดตได้ เมื่อเปิด pull request เปลี่ยนเวอร์ชัน action ใน workflow ที่ onboard แล้ว ระบบจะ regenerate รายการ lockfile ที่เกี่ยวข้องใน PR เดียวกัน ผู้ทบทวนจึงเห็นทั้งเวอร์ชันที่ตั้งใจอัปเดตและ commit จริงที่จะถูกรัน นี่ควรเป็นส่วนของรอบ review ปกติ ไม่ใช่แค่ให้ bot merge อัตโนมัติทุกครั้ง

สำหรับทีมที่ใช้ action จากหลายองค์กร ควรจัด inventory ว่า workflow ใดเข้าถึง GITHUB_TOKEN ด้วยสิทธิ์อะไร มี secret ใดถูกส่งให้ action และ action ใดดึงโค้ดอื่นต่อ การล็อก commit ช่วยควบคุมความเปลี่ยนแปลงของ dependency แต่ต้องใช้ร่วมกับการลด permissions ของ token, การจำกัด secret ตาม environment และการตรวจ publisher ของ action เพราะหาก action ที่ล็อกถูกออกแบบให้ส่งข้อมูลออกอยู่แล้ว lockfile ไม่ได้หยุดพฤติกรรมนั้น

สถานะและข้อควรระวัง

ฟีเจอร์นี้ยังเป็น public preview ในวันที่ประกาศ GitHub ระบุว่าครอบคลุมแผน Enterprise Cloud, Enterprise Cloud with data residency, Team และ Free ทีมที่ใช้ GitHub Enterprise Server ควรตรวจเอกสารรองรับเวอร์ชันก่อนเริ่ม อย่าอ้างว่ามีในทุก installation โดยอัตโนมัติ นอกจากนี้ควรทดลองกับ workflow ที่เรียก reusable workflow และ dependency ซ้อนกัน เพื่อดูว่าการอัปเดตหรือ rollback ทำงานตรงกับกระบวนการ release เดิม

การวัดผลที่ดีคือดูว่าทุกการเปลี่ยน action มี pull request และ commit ที่ review ได้หรือไม่ workflow ที่เคยรันด้วย tag เดิมแต่ผลเปลี่ยนโดยไม่มีการแก้ไฟล์เกิดน้อยลงหรือไม่ และ Dependabot ส่ง PR ที่ทีมตรวจได้ทันเวลาหรือเปล่า ข่าวนี้ให้เครื่องมือใหม่ด้าน supply chain แต่ความปลอดภัยจริงเกิดจากการตรวจ dependency และกำหนดสิทธิ์อย่างมีวินัย

แหล่งข่าวและวันที่ประกาศ: GitHub Changelog, 14 ตุลาคม 2026