ข้ามไปยังเนื้อหา

ตั้งค่าการผสาน GitHub

คู่มือนี้ครอบคลุมส่วนที่เป็นเฉพาะของ GitHub ในขั้นตอนการตั้งค่า GitHub เป็นหนึ่งในสาม โฮสต์โค้ดที่รองรับ — ดูเชื่อมต่อโฮสต์โค้ด สำหรับการเชื่อมต่อ GitLab หรือ Bitbucket และสำหรับวิธีที่เวิร์กสเปซหนึ่งผสมโฮสต์เหล่านี้เข้าด้วยกัน

  • บัญชี GitHub ที่มีสิทธิ์เข้าถึงรีโปที่คุณต้องการทำงานด้วย
  • GitHub App ที่ลงทะเบียนไว้สำหรับเซิร์ฟเวอร์ของคุณ (ดู สร้าง GitHub App) เพื่อให้คุณลงชื่อเข้าใช้ได้ หรือโทเค็นการเข้าถึงส่วนบุคคลที่มี repo และ read:org สำหรับวาง

device flow: GitHub แสดงรหัสสั้น ๆ ให้คุณ คุณอนุมัติบน github.com แล้วเซิร์ฟเวอร์ได้รับข้อมูลรับรอง — ไม่มี callback URL ไม่มีพอร์ต ไม่มีอะไรต้องเปิดเผย ใช้ได้ทุกเมื่อที่เซิร์ฟเวอร์มี client id ซึ่งบิลด์อย่างเป็นทางการมีมาให้อยู่แล้ว

  1. ไปที่ การตั้งค่า → เวิร์กสเปซ → โปรไฟล์และตัวตน → โฮสต์โค้ด (หรือขั้นตอนแรก ของการเริ่มต้นใช้งาน)
  2. ที่แถว GitHub คลิก ลงชื่อเข้าใช้ด้วย GitHub
  3. ไดอะล็อกจะแสดงรหัสแปดตัวอักษรและเปิด github.com/login/device ในเบราว์เซอร์ของคุณ รหัสอยู่ในคลิปบอร์ดของคุณแล้ว
  4. วางรหัส อนุมัติแอป แล้วกลับมา แถวจะเปลี่ยนเป็น “ลงชื่อเข้าใช้เป็น your-username” ด้วยตัวเอง

ไดอะล็อกปิดได้ระหว่างที่คุณดำเนินการในเบราว์เซอร์ให้เสร็จ — เซิร์ฟเวอร์จะ โพลล์ต่อไปจนกว่ารหัสจะหมดอายุ (ประมาณ 15 นาที) การลงชื่อเข้าใช้จึงยังสำเร็จอยู่ดี

ทางเลือกสำรองเมื่อเซิร์ฟเวอร์ไม่มีแอป เมื่อแอปไม่ได้ติดตั้งบนบัญชีที่คุณต้องการ หรือเมื่อคุณอยากใช้ PAT มากกว่า

  1. ไปที่ การตั้งค่า → เวิร์กสเปซ → โปรไฟล์และตัวตน → โฮสต์โค้ด
  2. ที่แถว GitHub คลิก เพิ่มโทเค็น
  3. วางโทเค็นที่มี 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, Claude, OpenAI และ Kimi มันถูกซ่อนไว้ขณะที่ทุกอย่างปกติ — การปรากฏตัวรายงาน ปัญหา ไม่ใช่การไม่มีปัญหา

คลิกชิปเพื่อเปิดฟลายเอาต์ที่แสดงสถานะของผู้ให้บริการแต่ละรายและปุ่มรีเฟรช สถานะจะรีเฟรชเองทุกสองนาที

  • เอเจนต์ที่ทำงานใน worktree ของ GitHub จะได้โทเค็น GitHub แบบอ่านอย่างเดียวเสมอ การพุชผ่าน Control Center ซึ่งถามกฎ พุชไปยังรีโมต ก่อน แล้วจึงส่งการพุชต่อด้วย โทเค็นเขียนที่เอเจนต์ไม่เคยถือ ดู ตั้งค่านโยบายแซนด์บ็อกซ์
  • คอมมิตที่เอเจนต์สร้างจะถูกระบุผู้เขียนเป็นเอเจนต์ — ชื่อที่แสดงบวก (agent) ที่แอดเดรสสังเคราะห์ซึ่งใช้ id ของเอเจนต์เป็นคีย์ — ไม่เคยเป็นมนุษย์ คนที่สั่งงานจะได้รับเครดิตผ่าน trailer Co-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 ที่แถวนั้น

โทเค็นต้องมี 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