คุยกับ Control Center จาก GitHub PR
คู่มือนี้แสดงวิธีทำงานกับ Control Center โดยไม่ต้องออกจาก GitHub: ขอรีวิวด้วย AI จากหน้า PR ถามคำถามกับบอตในความคิดเห็น และสนทนาต่อในเธรดรีวิวของมัน
บอตคือ GitHub App ของเซิร์ฟเวอร์คุณเอง — ตัวเดียวกับ ที่นำผู้ใช้เข้าสู่ระบบและรันงานเบื้องหลังอยู่แล้ว ไม่มีอะไรต้องลงทะเบียนใหม่ และไม่มีอะไรต้องเข้าถึงได้จากอินเทอร์เน็ต: เซิร์ฟเวอร์ค้นพบสิ่งที่ถูกพูดบน GitHub ด้วยการโพลล์ ดังนั้นโน้ตบุ๊กที่อยู่หลัง NAT จึงทำงานเหมือนการปรับใช้แบบสาธารณะ ทุกประการ
ก่อนเริ่ม
หัวข้อที่มีชื่อว่า “ก่อนเริ่ม”- เซิร์ฟเวอร์มี GitHub App ที่ลงทะเบียนและ ติดตั้งไว้แล้ว พร้อมสิทธิ์ Pull requests: read and write (สำหรับความคิดเห็น เธรด และปฏิกิริยา) และ Issues: read (สำหรับการค้นหา ความคิดเห็น) ทั้งสองอย่างอยู่ในรายการสิทธิ์ของคู่มือนั้นแล้ว
- รีโพสิทอรีถูกเชื่อมกับเวิร์กสเปซใน Control Center
- ไม่มี URL ของ webhook ไม่มีทันเนล ไม่มี callback — ไม่มีอะไรต้องตั้งค่าฝั่งเครือข่าย
ค้นหาชื่อบอตของคุณ
หัวข้อที่มีชื่อว่า “ค้นหาชื่อบอตของคุณ”ล็อกอินของบอตคือ <appslug>[bot] โดย appslug คือชื่อที่คุณตั้งให้แอปตอน
ลงทะเบียน
- ไปที่ การตั้งค่า → เซิร์ฟเวอร์ → ลงชื่อเข้าใช้ครั้งเดียว แล้วเลื่อนไปที่ การ์ด แอปผู้ให้บริการ
- เปิดบล็อก GitHub แล้วคลิก ทดสอบ
- คัดลอก ล็อกอินบอท เมื่อมันเติมค่าให้ หากยังแสดงข้อความใบ้ช่องว่างอยู่
ล็อกอินจะเป็น
<appslug>[bot]เสมอ — พิมพ์ค่านั้น หรือใช้แบบสั้น@appslug
GitHub ไม่เสนอให้บัญชีแอปปรากฏใน autocomplete ของ @ ล็อกอินจึงต้องพิมพ์เอง —
นั่นคือเหตุผลที่การ์ดการตั้งค่าทำให้คัดลอกได้ในคลิกเดียว ส่วนต่อท้าย [bot]
ไม่จำเป็น: ทั้ง @myapp และ @myapp[bot] ต่างก็ส่งถึงบอต
ขอรีวิวจาก GitHub
หัวข้อที่มีชื่อว่า “ขอรีวิวจาก GitHub”มีสองวิธี ทั้งคู่เริ่มไปป์ไลน์ pr_review ที่มาพร้อมระบบแบบเดียวกับที่ปุ่ม
ถาม AI เริ่ม:
- เพิ่มป้ายกำกับ
ai-reviewให้ PR นี่คือสิ่งที่ใกล้เคียงที่สุดที่ GitHub เสนอให้เทียบเท่าการมอบหมายบอตเป็นรีวิวเวอร์ — บัญชีแอปไม่อาจครองช่อง ผู้ขอรีวิวแบบเนทีฟได้ ไม่มีความคิดเห็นให้แสดงปฏิกิริยา จึงไม่มีอะไรถูกโพสต์ ขึ้น GitHub รีวิวจะเริ่มใน Control Center - แสดงความคิดเห็น
@myapp review(หรือแค่@myapp) ในบทสนทนาของ PR บอตจะแสดงปฏิกิริยา 👀 แล้วตอบกลับเมื่อรีวิวเริ่มทำงาน (หรือแจ้งว่ามีรีวิว กำลังรันอยู่แล้ว)
รีวิวเวอร์ทำงานในสเปซรีวิวของ PR อ่านและเผยแพร่ข้อค้นพบได้ตามใน ใช้รีวิวด้วย AI การเผยแพร่กลับไปยัง GitHub ยังเป็นการตัดสินใจที่คุณทำใน Control Center — การเริ่มรีวิวจาก GitHub ไม่ได้เผยแพร่อะไรไปยัง GitHub ด้วยตัวเอง
ป้ายกำกับจะทำงานครั้งเดียวต่อ PR: การเพิ่มมันคือคำขอ และมันจะไม่ถูกตั้งกลับ เมื่อลบออกแล้วเพิ่มใหม่ หากต้องการรันรีวิวอีกครั้ง — เช่นหลังพุช — ให้กล่าวถึงบอต
ถามคำถาม
หัวข้อที่มีชื่อว่า “ถามคำถาม”แสดงความคิดเห็นในบทสนทนาของ PR:
@myapp why does the flaky test in runner_test.dart fail on CI but not locally?สิ่งที่เกิดขึ้น ตามลำดับ:
- บอตแสดงปฏิกิริยา 👀 เพื่อให้คุณรู้ว่าความคิดเห็นถูกเห็นแล้ว
- คำถามถูกโพสต์เข้าสเปซรีวิวของ PR ในนามของคุณ — การระบุที่มาแบบเดียวกับ ที่คุณพิมพ์เองใน Control Center
- เอเจนต์ตอบในสเปซ และคำตอบถูกโพสต์กลับไปบน PR เป็นความคิดเห็นที่ @mention คุณ
คำถามบน PR ที่ยังไม่มีรีวิวจะปลุกเอเจนต์หัวหน้า (CEO) ของเวิร์กสเปซ เมื่อรีวิว รันไปแล้ว เอเจนต์ที่พูดเป็นคนสุดท้ายจะเป็นผู้ตอบ คำถามต่อยอดจึงตกอยู่กับคนที่มี บริบท
ติดตามต่อในเธรดรีวิว
หัวข้อที่มีชื่อว่า “ติดตามต่อในเธรดรีวิว”ตอบกลับภายในเธรดรีวิวแบบอินไลน์ที่บอตเป็นส่วนหนึ่ง — ความคิดเห็นบน diff ที่มัน ทิ้งไว้ หรือคำตอบที่มันโพสต์ในเธรดนั้น ไม่จำเป็นต้องกล่าวถึง ตัวเธรดคือ การระบุเป้าหมาย:
> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?การสนทนาหลายรอบก็ทำงานแบบเดียวกัน: แต่ละการตอบกลับคือคำถามอีกข้อในบทสนทนาเดิม โดยมีสเปซรีวิวเป็นบริบท และคำตอบก็กลับมาในเธรด
การติดตามต่อบนไทม์ไลน์ของบทสนทนา PR ถือเป็นความคิดเห็นระดับบนสุดใหม่ จึงยังต้องมี @mention
บอตคุยกับใคร
หัวข้อที่มีชื่อว่า “บอตคุยกับใคร”ความคิดเห็นบน GitHub ส่งมาพร้อมข้อมูลเพียงล็อกอินเท่านั้น บอตจึงเทียบตัวผู้เขียน ก่อนที่จะทำสิ่งใด:
- บัญชี GitHub ของคุณต้องถูกเชื่อมกับตัวตนของคุณใน Control Center — ลงชื่อเข้าใช้ด้วย GitHub หรือวางโทเค็น จาก การตั้งค่า → เวิร์กสเปซ → โปรไฟล์และตัวตน → โฮสต์โค้ด
- คุณต้องเป็นสมาชิกที่มีบทบาทแบบเขียน (
member,adminหรือowner) ในเวิร์กสเปซที่เชื่อมรีโพสิทอรีนั้น
คนอื่นจะได้รับการตอบกลับอย่างสุภาพหนึ่งครั้งเพื่ออธิบายว่าขาดอะไร — ล็อกอินที่
ไม่รู้จัก (ยังไม่เชื่อม หรือเชื่อมแล้วแต่ไม่ใช่สมาชิกที่นี่) และบทบาทแบบอ่าน
อย่างเดียว คือสองกรณีนั้น — และถ้อยคำของพวกเขาจะไม่เข้าไปในเวิร์กสเปซเลย
ป้ายกำกับ ai-review ไม่ถูกกั้นด้วยวิธีนี้: มันไม่มีผู้เขียน จึงเริ่มรีวิวใน
เวิร์กสเปซที่เชื่อมรีโพนั้นไว้อยู่แล้ว
สิ่งที่ควรคาดหวัง
หัวข้อที่มีชื่อว่า “สิ่งที่ควรคาดหวัง”| สิ่ง | พฤติกรรม |
|---|---|
| การตอบรับ | 👀 บนความคิดเห็นภายในประมาณหนึ่งนาที — ช่วงเวลาของการกวาด ป้ายกำกับ ai-review ไม่มีความคิดเห็นให้แสดงปฏิกิริยา |
| คำตอบ | โพสต์ในนามบอต (ตัวแอป) ในช่องทางที่คำถามถูกถาม |
| การระบุที่มาในสเปซ | คำถามเป็นของคุณ เอเจนต์รันในนามของคุณ ภายใต้การตั้งค่าความเป็นอิสระของสเปซ |
| รีวิว | ข้อค้นพบลงในสเปซรีวิว การเผยแพร่ไปยัง GitHub ต้องทำด้วยมือ |
ความหน่วงประมาณหนึ่งนาทีคือสิ่งที่แลกมากับการไม่ต้องมีลิงก์เครือข่ายขาเข้าเลย ไม่มีอะไรในรอบกวาดที่เร่งด่วน และไม่มีอะไรสูญหายขณะเซิร์ฟเวอร์ออฟไลน์ — ความคิดเห็นที่มาถึงช่วงดาวน์ไทม์จะถูกเก็บในรอบกวาดถัดไป
การแก้ปัญหา
หัวข้อที่มีชื่อว่า “การแก้ปัญหา”ไม่เกิดอะไรขึ้นกับความคิดเห็นที่กล่าวถึงบอต
- แอปถูกติดตั้งบนบัญชีที่เป็นเจ้าของรีโพแล้วหรือยัง และรีโพถูกเชื่อม กับเวิร์กสเปซหรือยัง รีโพที่ยังไม่ถูกเชื่อมจะถูกข้ามก่อนที่จะมีการบันทึกสิ่งใด ดังนั้นการเชื่อมมันในภายหลังยังคงได้ผล
- บัญชี GitHub ของคุณเชื่อมไว้แล้วหรือยัง และคุณเป็นสมาชิกที่มีบทบาทแบบเขียน หรือไม่ ดูคำตอบปฏิเสธของบอตบน PR — มันจะบอกว่าเป็นกรณีใด
- ยังไม่มีอะไรเกิดขึ้นอีกหรือ บันทึกของเซิร์ฟเวอร์จะระบุรอบกวาดและ PR เมื่อมี
อะไรล้มเหลว ให้มองหา
pr_conversation:(ตัวโพลล์) และgithub_pr_conversation:(สะพาน)
ป้ายกำกับไม่เริ่มรีวิว
มันทำงานครั้งเดียวต่อ PR หากรีวิวรันไปแล้ว หรือป้ายกำกับถูกเพิ่มก่อนที่
เซิร์ฟเวอร์จะเห็น PR นี้เลย (การกวาดครั้งแรกจะบันทึกงานที่ค้างอยู่ไว้อย่างเงียบ ๆ
แทนที่จะกระหน่ำรันทั้งหมด) ให้กล่าวถึงบอตแทน — @myapp review เริ่มรีวิวเสมอ
เว้นแต่มีรีวิวกำลังดำเนินอยู่แล้ว
คำตอบของบอตไม่มาถึง GitHub เลย
ตัวคำตอบไม่เคยสูญหาย — มันอยู่ในสเปซรีวิวของ PR ใน Control Center ความล้มเหลว ในการโพสต์ (GitHub ล่ม สิทธิ์เปลี่ยนไป) จะถูกบันทึกไว้ และคำตอบจะไม่ถูกลองใหม่ หากสำคัญให้ถามอีกครั้งในเธรด
คู่มือที่เกี่ยวข้อง
หัวข้อที่มีชื่อว่า “คู่มือที่เกี่ยวข้อง”- สร้าง GitHub App: การลงทะเบียนที่ให้กำเนิดบอต
- ใช้รีวิวด้วย AI: การอ่านข้อค้นพบที่รีวิวซึ่ง เริ่มด้วยการกล่าวถึงสร้างขึ้น
- ตั้งค่าการผสาน GitHub: การเชื่อมบัญชี GitHub ของคุณเอง ซึ่งเป็นสิ่งที่บอตใช้ระบุตัวคุณ
- ใช้สเปซ: ห้องที่ทุกอย่างนี้ไปลงเอย