GitHub Code Coverage merge protection: ตกลงสัญญาก่อนเลือกเปอร์เซ็นต์

Dev
GitHub ใช้ threshold ของ coverage และ code quality เป็นเงื่อนไข merge PR ได้แล้ว ทีมควรกำหนด baseline, diff coverage, exception และ rollout ก่อน
coverage gate ที่ดีทำให้ความเสี่ยงของ PR ชัดขึ้น ไม่ใช่บังคับตัวเลขแบบไร้บริบท

เกิดอะไรขึ้น

GitHub ประกาศเมื่อ 30 มิถุนายน 2026 ว่า GitHub Code Coverage สามารถใช้เป็น merge protection สำหรับ pull request ได้ ถ้า PR ไม่ผ่าน threshold ก็ block merge ได้

ทำไมจึงสำคัญ

ความสำคัญคือ coverage เข้ามาอยู่ใน code review, ruleset และ branch protection ไม่ใช่แค่ report แยกต่างหาก

สัญญาณจากชุมชน

ชุมชนนักพัฒนาถกเถียงเรื่องนี้มานาน coverage สูงไม่ได้แปลว่า test ดีเสมอ แต่ปล่อยให้ coverage ลดลงเรื่อยๆ ก็สร้างหนี้ test

ผลต่อการปฏิบัติการ

ควรแยก total coverage กับ diff coverage ออกจากกัน ตัวแรกคือสุขภาพระยะยาว ส่วนตัวหลังดูว่า PR นี้เพิ่ม code ที่ยังไม่มี test หรือไม่

เช็กลิสต์

เริ่มจาก soft fail, เก็บ baseline ของ main, exclude generated code และ migration, และกำหนดคนอนุมัติ exception

ความเสี่ยง

ความเสี่ยงคือความมั่นใจปลอมและ CI ช้า gate นี้ต้องเสริม assertion, integration test และ human review ไม่ใช่แทนที่ทั้งหมด

Rollout checklist

Start with a baseline, not an ideal target.

Separate total coverage from diff coverage.

Document exclusions and exception approvers.

Use soft fail before hard enforcement.

แหล่งข้อมูล

다른 글