ตั้งค่าการผสาน GitHub
คู่มือนี้ครอบคลุมส่วนที่เป็นเฉพาะของ GitHub ในขั้นตอนการตั้งค่า GitHub เป็นหนึ่งในสาม โฮสต์โค้ดที่รองรับ — ดูเชื่อมต่อโฮสต์โค้ด สำหรับการเชื่อมต่อ GitLab หรือ Bitbucket และสำหรับวิธีที่เวิร์กสเปซหนึ่งผสมโฮสต์เหล่านี้เข้าด้วยกัน
ก่อนที่คุณจะเริ่ม
หัวข้อที่มีชื่อว่า “ก่อนที่คุณจะเริ่ม”- บัญชี GitHub ที่มีสิทธิ์เข้าถึงรีโปที่คุณต้องการทำงานด้วย
- GitHub App ที่ลงทะเบียนไว้สำหรับเซิร์ฟเวอร์ของคุณ (ดู
สร้าง GitHub App) เพื่อให้คุณลงชื่อเข้าใช้ได้
หรือโทเค็นการเข้าถึงส่วนบุคคลที่มี
repoและread:orgสำหรับวาง
ลงชื่อเข้าใช้ด้วย GitHub
หัวข้อที่มีชื่อว่า “ลงชื่อเข้าใช้ด้วย GitHub”device flow: GitHub แสดงรหัสสั้น ๆ ให้คุณ คุณอนุมัติบน github.com แล้วเซิร์ฟเวอร์ได้รับข้อมูลรับรอง — ไม่มี callback URL ไม่มีพอร์ต ไม่มีอะไรต้องเปิดเผย ใช้ได้ทุกเมื่อที่เซิร์ฟเวอร์มี client id ซึ่งบิลด์อย่างเป็นทางการมีมาให้อยู่แล้ว
- ไปที่ การตั้งค่า → เวิร์กสเปซ → โปรไฟล์และตัวตน → โฮสต์โค้ด (หรือขั้นตอนแรก ของการเริ่มต้นใช้งาน)
- ที่แถว GitHub คลิก ลงชื่อเข้าใช้ด้วย GitHub
- ไดอะล็อกจะแสดงรหัสแปดตัวอักษรและเปิด github.com/login/device ในเบราว์เซอร์ของคุณ รหัสอยู่ในคลิปบอร์ดของคุณแล้ว
- วางรหัส อนุมัติแอป แล้วกลับมา แถวจะเปลี่ยนเป็น “ลงชื่อเข้าใช้เป็น your-username” ด้วยตัวเอง
ไดอะล็อกปิดได้ระหว่างที่คุณดำเนินการในเบราว์เซอร์ให้เสร็จ — เซิร์ฟเวอร์จะ โพลล์ต่อไปจนกว่ารหัสจะหมดอายุ (ประมาณ 15 นาที) การลงชื่อเข้าใช้จึงยังสำเร็จอยู่ดี
หรือวางโทเค็น
หัวข้อที่มีชื่อว่า “หรือวางโทเค็น”ทางเลือกสำรองเมื่อเซิร์ฟเวอร์ไม่มีแอป เมื่อแอปไม่ได้ติดตั้งบนบัญชีที่คุณต้องการ หรือเมื่อคุณอยากใช้ PAT มากกว่า
- ไปที่ การตั้งค่า → เวิร์กสเปซ → โปรไฟล์และตัวตน → โฮสต์โค้ด
- ที่แถว GitHub คลิก เพิ่มโทเค็น
- วางโทเค็นที่มี
repoและread:org(แบบคลาสสิก) แล้วบันทึก โทเค็น แบบละเอียด ต้องมีสิทธิ์ Contents และ Pull requests (อ่านและเขียน) บวกกับ Checks และ Actions (อ่าน)
โทเค็นจะถูกตรวจสอบขณะจัดเก็บ แถวจึงระบุบัญชีที่มันเป็นเจ้าของได้ คลิก ยกเลิกการเชื่อมต่อ เพื่อลบมัน
จุดตรวจสอบ: แถว GitHub แสดงข้อความ “ลงชื่อเข้าใช้เป็น your-username” คำต่อท้าย จะระบุแหล่งที่มาเมื่อข้อมูลรับรองที่ตอบสนองไม่ใช่ของคุณ — “ผ่านแอปของเซิร์ฟเวอร์นี้” หรือ “จากสภาพแวดล้อม”
สิ่งที่การผสานนี้มอบให้
หัวข้อที่มีชื่อว่า “สิ่งที่การผสานนี้มอบให้”| ฟีเจอร์ | วิธีการ |
|---|---|
| รายการและรายละเอียด PR | GitHub REST API จากเซิร์ฟเวอร์ บนตัวตนแอปหรือข้อมูลรับรองของคุณเอง |
| การรันเช็ก | GitHub Checks API |
| การเผยแพร่รีวิว | ขั้นตอนที่ต้องมีผู้ใช้ยืนยัน ซึ่งโพสต์รีวิวของคุณไปที่ PR |
| การลงทะเบียนรีโป | เช็กเอาต์จะได้รับการยอมรับหาก remote origin ของมันชี้ไปที่ github.com — หรือ gitlab.com / bitbucket.org |
| การเข้าถึง GitHub ของเอเจนต์ | โบรกเกอร์ข้อมูลรับรองจะฉีดโทเค็นแบบอ่านอย่างเดียวเป็น GH_TOKEN / GITHUB_TOKEN; การพุชผ่าน Control Center |
| การแจ้งเตือนแบบ ping | การโพลล์กล่องขาเข้าการแจ้งเตือน GitHub ของคุณฝั่งเซิร์ฟเวอร์จะสร้าง “ถูกกล่าวถึงใน pull request” และ “ขอรีวิวแล้ว” |
| โปรไฟล์ผู้ใช้ | การ์ดโปรไฟล์เมื่อวางเมาส์ และการกรอง PR ตามผู้เขียนแต่ละราย |
บางเส้นทางใช้ GraphQL API แทน REST เมื่อประหยัดกว่า — กิจกรรมของสาขาสำหรับตัวเลือก PR ในหน้าสร้าง และสถานะรีวิวสดที่ตัดสินว่าการแจ้งเตือนว่ามีผู้ขอรีวิวยังค้างอยู่หรือไม่
เฝ้าระวังเหตุ GitHub ขัดข้อง
หัวข้อที่มีชื่อว่า “เฝ้าระวังเหตุ GitHub ขัดข้อง”แถบชื่อเรื่องจะแสดงชิปสถานะเมื่อผู้ให้บริการรายใดทำงานบกพร่อง ครอบคลุม GitHub, Claude, OpenAI และ Kimi มันถูกซ่อนไว้ขณะที่ทุกอย่างปกติ — การปรากฏตัวรายงาน ปัญหา ไม่ใช่การไม่มีปัญหา
คลิกชิปเพื่อเปิดฟลายเอาต์ที่แสดงสถานะของผู้ให้บริการแต่ละรายและปุ่มรีเฟรช สถานะจะรีเฟรชเองทุกสองนาที
ทำความเข้าใจว่าเอเจนต์ทำอะไรบน GitHub
หัวข้อที่มีชื่อว่า “ทำความเข้าใจว่าเอเจนต์ทำอะไรบน GitHub”- เอเจนต์ที่ทำงานใน worktree ของ GitHub จะได้โทเค็น GitHub แบบอ่านอย่างเดียวเสมอ การพุชผ่าน Control Center ซึ่งถามกฎ พุชไปยังรีโมต ก่อน แล้วจึงส่งการพุชต่อด้วย โทเค็นเขียนที่เอเจนต์ไม่เคยถือ ดู ตั้งค่านโยบายแซนด์บ็อกซ์
- คอมมิตที่เอเจนต์สร้างจะถูกระบุผู้เขียนเป็นเอเจนต์ — ชื่อที่แสดงบวก
(agent)ที่แอดเดรสสังเคราะห์ซึ่งใช้ id ของเอเจนต์เป็นคีย์ — ไม่เคยเป็นมนุษย์ คนที่สั่งงานจะได้รับเครดิตผ่าน trailerCo-Authored-By - เมื่อกำหนดค่า GitHub App ไว้ โบรกเกอร์จะสร้าง installation token แบบละเอียดที่จำกัด
ขอบเขตตามรีโปและมีอายุราวหนึ่งชั่วโมงต่อการเปิดรันหนึ่งครั้ง แทนที่จะมอบโทเค็นที่กว้าง
การติดตั้งจะถูกตัดสินจาก เจ้าของ รีโปของการรัน แอปเดียวที่ติดตั้งบนหลายบัญชี
จึงจำกัดขอบเขตได้ถูกต้องตามบัญชีที่การรันแตะ หากไม่มีแอป เอเจนต์จะได้รับโทเค็นจาก
สภาพแวดล้อม ซึ่งจำกัดให้อ่านอย่างเดียวไม่ได้: กฎการพุชจึงผูกมัด
git pushแต่ไม่ผูกมัด โค้ดที่ใช้โทเค็นนั้นโดยตรง - โทเค็นเป็นของโบรกเกอร์เสมอ ไม่เคยเป็นของสมาชิกผู้ร้องขอ โทเค็นของเซิร์ฟเวอร์จะถูก ระงับสำหรับการรันที่ทำในนามสมาชิกที่ไม่ได้เป็นเจ้าของและยังไม่ได้เชื่อม GitHub
การแก้ปัญหา
หัวข้อที่มีชื่อว่า “การแก้ปัญหา”รายการ PR ว่างเปล่าและบอกว่า GitHub ยังไม่ได้เชื่อมต่อ
หัวข้อที่มีชื่อว่า “รายการ PR ว่างเปล่าและบอกว่า GitHub ยังไม่ได้เชื่อมต่อ”คุณไม่มีข้อมูลรับรอง GitHub บนเซิร์ฟเวอร์นี้ ลงชื่อเข้าใช้หรือวางโทเค็นใต้ โฮสต์โค้ด รีโปบนโฮสต์โค้ดอื่นไม่ได้รับผลกระทบ — มีเพียงของ GitHub เท่านั้นที่ ไม่ส่งข้อมูลอะไรเลย
แถวเสนอ “เพิ่มโทเค็น” แต่ไม่มี “ลงชื่อเข้าใช้ด้วย GitHub”
หัวข้อที่มีชื่อว่า “แถวเสนอ “เพิ่มโทเค็น” แต่ไม่มี “ลงชื่อเข้าใช้ด้วย GitHub””เซิร์ฟเวอร์ไม่มี client id — ซึ่งเป็นสถานะปกติของบิลด์จากซอร์สโค้ด เพราะข้อมูลรับรอง ถูกฝังไว้ในบิลด์อย่างเป็นทางการเท่านั้น ดู สร้าง GitHub App: ใช้เวลาประมาณสองนาที และมีเพียงเจ้าของเซิร์ฟเวอร์ที่ต้องทำ เพียงครั้งเดียว
ไดอะล็อกลงชื่อเข้าใช้บอกว่าผู้ให้บริการไม่ได้ส่ง device code กลับมา
หัวข้อที่มีชื่อว่า “ไดอะล็อกลงชื่อเข้าใช้บอกว่าผู้ให้บริการไม่ได้ส่ง device code กลับมา”GitHub App มีอยู่ แต่กล่อง Device flow ของมันถูกปิดอยู่ เปิดมันในการตั้งค่าของ แอป (General → Device flow) แล้วลองอีกครั้ง
แถวบอกว่า “ผ่านแอปของเซิร์ฟเวอร์นี้” เมื่อฉันคาดหวังบัญชีของตัวเอง
หัวข้อที่มีชื่อว่า “แถวบอกว่า “ผ่านแอปของเซิร์ฟเวอร์นี้” เมื่อฉันคาดหวังบัญชีของตัวเอง”คุณยังไม่ได้ลงชื่อเข้าใช้ สิ่งที่คุณเห็นคือตัวตนแอปของเซิร์ฟเวอร์เป็นผู้ตอบ คลิก ลงชื่อเข้าใช้ด้วย GitHub ที่แถวนั้น
PAT แบบละเอียดไม่แสดงปุ่มรวมหรือสถานะเช็ก
หัวข้อที่มีชื่อว่า “PAT แบบละเอียดไม่แสดงปุ่มรวมหรือสถานะเช็ก”โทเค็นต้องมี Contents และ Pull requests (อ่านและเขียน) บวกกับ Checks และ Actions (อ่าน) หลังจากแก้ไขแล้ว ให้วางใหม่ใต้ โฮสต์โค้ด
การเพิ่มรีโปถูกปฏิเสธ
หัวข้อที่มีชื่อว่า “การเพิ่มรีโปถูกปฏิเสธ”การลงทะเบียนต้องเข้าเงื่อนไขทั้งสามข้อ: พาธอยู่ภายใน git work tree, มี
remote origin, และ remote นั้นชี้ไปที่โฮสต์โค้ดที่รองรับ (github.com,
gitlab.com หรือ bitbucket.org) ดู
เพิ่มรีโปในเวิร์กสเปซ
ทุกอย่างหยุดทำงานชั่วขณะหลังใช้งานหนัก
หัวข้อที่มีชื่อว่า “ทุกอย่างหยุดทำงานชั่วขณะหลังใช้งานหนัก”นั่นคือเซอร์กิตเบรกเกอร์ของขีดจำกัดอัตรา GitHub ส่งสัญญาณขีดจำกัดหลักด้วย
403 ที่แนบ x-ratelimit-remaining: 0 และเวลารีเซ็ต เมื่อเจอแล้ว ไคลเอนต์จะทำให้
คำขอต่อไปล้มเหลวในเครื่องโดยไม่เรียกผ่านเครือข่ายจนกว่าหน้าต่างเวลาจะผ่านไป
พายุการลองใหม่จึงไม่สามารถทำให้ขีดจำกัดลึกลงได้ ความล้มเหลวชั่วคราวจะถูกลองใหม่
ไม่เกินสามครั้งด้วย exponential backoff โดยเคารพ retry-after