Skip to main content
Back to articles

GitHub อาจขอ Login ชั่วคราวเมื่อ Clone Public Repo ผ่าน HTTPS ในช่วงทราฟฟิกผิดปกติ

CI ที่ clone หรือ fetch แบบ anonymous ควรเตรียม token และ retry อย่างเหมาะสม

GitHub อาจขอ Login ชั่วคราวเมื่อ Clone Public Repo ผ่าน HTTPS ในช่วงทราฟฟิกผิดปกติ

GitHub แจ้งเมื่อ 19 ตุลาคม 2026 ว่าการ git clone หรือ git fetch จาก repository สาธารณะผ่าน HTTPS แบบไม่ยืนยันตัวตนอาจถูกขอให้ login ชั่วคราวในช่วงที่มีทราฟฟิกผิดปกติ การเปลี่ยนนี้ไม่ได้ทำให้ public repository กลายเป็น private แต่มีผลต่อ build script และ CI ที่สมมติว่าดึง public repo แบบ anonymous จะสำเร็จทุกครั้ง

ขอบเขตของมาตรการ

GitHub ระบุว่าจะบังคับใช้ให้แคบที่สุดตามสัญญาณ anomalous traffic หากคำขอได้รับผลกระทบ Git operation จะล้มเหลวพร้อมข้อความว่าต้องยืนยันตัวตน ผู้ใช้สามารถ authenticate แล้วลองใหม่ หรือรอจนมาตรการชั่วคราวสิ้นสุดแล้ว retry แบบไม่ยืนยันตัวตนได้ GitHub ยอมรับด้วยว่าทราฟฟิกปกติอาจใช้สัญญาณบางอย่างร่วมกับทราฟฟิกผิดปกติ จึงมีโอกาสได้รับผลกระทบโดยไม่ใช่ต้นเหตุ

รายการที่ประกาศว่าไม่ถูกกระทบคือ Git operation ผ่าน HTTPS ที่ยืนยันตัวตนแล้ว, Git ผ่าน SSH, การ push และทราฟฟิกเว็บหรือ API ที่ไม่เกี่ยวข้อง อย่าเปลี่ยน remote ทั้งองค์กรหรือเพิ่มสิทธิ์ใหม่โดยเดาว่าทุก endpoint จะบังคับ login เพราะขอบเขตข่าวนี้เฉพาะ clone/fetch สาธารณะผ่าน HTTPS ที่ไม่ได้ยืนยันตัวตนในบางช่วง

ตรวจ CI ที่เสี่ยงก่อนงานล้มเหลว

ค้น workflow ที่ใช้ git clone https://github.com/... หรือ git fetch กับ repository สาธารณะโดยไม่ส่ง credential โดยเฉพาะงาน build image, ดาวน์โหลด dependency จาก source และ job ที่รันจาก IP ร่วมกันจำนวนมาก ทดสอบ behavior เมื่อ Git คืนข้อความต้องยืนยันตัวตน แยกออกจาก 404, rate limit หรือปัญหา DNS ใน log หาก pipeline ล้มเหลวเพียงบางเวลาและ retry แล้วผ่าน อย่าสรุปทันทีว่าเป็นบั๊กของ repository ต้นทาง

GitHub แนะนำให้ใช้ GITHUB_TOKEN ที่มีอยู่ใน GitHub Actions สำหรับงานที่รันบนบริการนั้น สำหรับ CI อื่น ควรใช้ GitHub App installation access token และอาจใช้ personal access token ได้ตามกรณี จัดเก็บ token ใน secret store ไม่พิมพ์ลง log และให้สิทธิ์เท่าที่จำเป็น หากเลือก SSH ให้จัดการ deploy key หรือ identity ให้เหมาะกับ repository และสภาพแวดล้อม ไม่คัดลอก private key ใส่ image ที่แจกจ่าย

ออกแบบ retry ให้เหมาะ

ระบบที่ไม่สามารถ authenticate ได้ควร retry หลังระยะรอเมื่อมาตรการหมด ไม่ควรยิงคำขอถี่มากขึ้นจนกลายเป็นส่วนหนึ่งของทราฟฟิกผิดปกติ ตั้ง backoff มีเพดานจำนวนครั้ง และแจ้งเตือนเมื่อเกินระยะที่ยอมรับได้ สำหรับ dependency สำคัญ ควร pin commit หรือ tag ที่ตรวจสอบแล้ว และพิจารณา cache ที่เชื่อถือได้เพื่อไม่ให้ทุก build ต้องดึงจาก GitHub ใหม่

ข่าวนี้เตือนว่าความเป็น public หมายถึงสิทธิ์ในการอ่าน repository ไม่ได้เท่ากับคำมั่นว่าการอ่านแบบ anonymous จะผ่านทุกสถานการณ์ ทีมที่ต้องการความเสถียรของ automated clone ควรเตรียม authentication ตั้งแต่ก่อนเกิด outage และทดสอบ secret rotation เพื่อให้แก้เหตุได้โดยไม่เปิด credential กว้างเกินจำเป็น

ประกาศต้นทาง: https://github.blog/changelog/2026-10-19-some-git-over-https-may-temporarily-require-authentication/