ภาพรวม
ใช้คู่มือนี้หากคุณเป็นผู้ดูแลเวิร์กสเปซ ChatGPT ที่กำลังตั้งค่าเทมเพลตแอป GitHub Enterprise สำหรับองค์กรของคุณ เทมเพลตไม่ใช่แอปสุดท้ายที่สมาชิกใช้ เทมเพลตคือขั้นตอนการตั้งค่าที่สร้างแอปฉบับร่างเฉพาะเวิร์กสเปซ หลังจากคุณให้การกำหนดค่า GitHub Enterprise ที่จำเป็น
สำหรับ GitHub Enterprise การตั้งค่าจะเชื่อมต่อ ChatGPT กับ โฮสต์ GitHub Enterprise ขององค์กรคุณ คุณสร้าง GitHub App ลงทะเบียน URL Callback ของ ChatGPT สร้างข้อมูลประจำตัว จากนั้นวางค่าเหล่านั้นลงในขั้นตอนตั้งค่าเทมเพลต ChatGPT หลังจาก ChatGPT สร้างแอปฉบับร่างแล้ว คุณสามารถเผยแพร่และจัดการได้เหมือนแอปเวิร์กสเปซอื่นๆ
สิ่งที่คุณกำลังตั้งค่า
คุณกำลังสร้างแอป GitHub Enterprise เฉพาะเวิร์กสเปซใน ChatGPT แอปใช้:
GitHub App ที่ลงทะเบียนบนโฮสต์ GitHub Enterprise ของคุณ
Client ID และ Client secret ของ GitHub App สำหรับการอนุญาตผู้ใช้ด้วย OAuth
คีย์ส่วนตัวของ GitHub App เพื่อให้ ChatGPT สร้าง Token การติดตั้งสำหรับการดำเนินการกับ Repository ได้
webhook secret และ URL webhook เพื่อให้ GitHub Enterprise ส่งเหตุการณ์การติดตั้งและ Repository กลับไปยัง ChatGPT
ชื่อโฮสต์ GitHub Enterprise ของคุณ เช่น
github.example.com
สร้าง GitHub App ไม่ใช่ GitHub OAuth App แบบสแตนด์อโลน การตั้งค่าเทมเพลต ChatGPT ต้องใช้ข้อมูลประจำตัว GitHub App, คีย์ส่วนตัว และการตั้งค่า webhook
ก่อนเริ่มต้น
คุณต้องมี:
สิทธิ์ผู้ดูแลหรือเจ้าของเวิร์กสเปซ ChatGPT
สิทธิ์ผู้ดูแล GitHub Enterprise หรือเจ้าขององค์กรที่สามารถสร้างและติดตั้ง GitHub Apps ได้
เฉพาะชื่อโฮสต์ GitHub Enterprise โดยไม่มี
https://หรือพาธการตัดสินใจว่าต้องการให้ ChatGPT รองรับการดำเนินการใดกับ Repository เช่น การค้นหา Repository แบบอ่านอย่างเดียว เวิร์กโฟลว์ Pull Request เวิร์กโฟลว์ issue การแก้ไขไฟล์ GitHub Actions หรือเวิร์กโฟลว์ Codex ที่กว้างขึ้น
สถานที่ปลอดภัยสำหรับจัดการคีย์ส่วนตัวและ Client secret ของ GitHub App
เปิด ChatGPT และ GitHub Enterprise ไว้ในแท็บแยกกัน อย่าคิด URL Callback ขึ้นเอง คัดลอก URL Callback ที่แสดงใน ChatGPT ให้ตรงทุกประการ
ค่าที่ต้องเตรียม
ชื่อโฮสต์ GitHub Enterprise: เช่น
github.example.comURL Callback: คัดลอกจากขั้นตอนตั้งค่าเทมเพลต ChatGPT
Client ID ของ GitHub App
Client secret ของ GitHub App
PEM คีย์ส่วนตัวของ GitHub App
webhook secret ที่ ChatGPT สร้างขึ้น
URL webhook ที่สร้างขึ้นหลังจากสร้างแอปฉบับร่างใน ChatGPT
เริ่มตั้งค่าเทมเพลตใน ChatGPT
ใน ChatGPT ให้สลับไปยังเวิร์กสเปซที่ต้องการให้แอปใช้งานได้
เปิด การตั้งค่าเวิร์กสเปซ > แอป
เลือก ไดเรกทอรี
ค้นหา GitHub Enterprise
เลือกเทมเพลตแอป GitHub Enterprise แล้วเริ่มตั้งค่า
ป้อนชื่อและคำอธิบายแอปที่ชัดเจน เช่น GitHub Enterprise หรือ GitHub Enterprise - Engineering
ป้อนชื่อโฮสต์ GitHub Enterprise เช่น
github.example.comคัดลอก URL Callback ที่แสดงใน ChatGPT เปิดแท็บนี้ค้างไว้
คัดลอก webhook secret ที่สร้างขึ้น หากแสดงระหว่างการตั้งค่า
ตัวอย่าง URL Callback: https://chatgpt.com/connector/oauth/<callback_id>
อย่าลบ callback ID เพิ่มเครื่องหมายทับปิดท้าย หรือแทนที่ด้วย URL ChatGPT ทั่วไป
สร้าง GitHub App ใน GitHub Enterprise
เปิดโฮสต์ GitHub Enterprise ของคุณ เช่น
https://github.example.comไปที่องค์กรหรือบัญชีที่ควรเป็นเจ้าของแอป
เปิด การตั้งค่า > การตั้งค่านักพัฒนา > GitHub Apps
เลือก GitHub App ใหม่
ป้อนชื่อแอปที่ชัดเจน เช่น ChatGPT GitHub Enterprise Connector
ป้อน URL หน้าแรก หากไม่มีหน้าภายในเฉพาะ ให้ใช้ URL องค์กร GitHub Enterprise
ใน Callback URL ให้วาง URL Callback ที่คัดลอกมาจาก ChatGPT ให้ตรงทุกประการ
เปิดใช้ Expire user authorization tokens ไว้ เว้นแต่ทีมความปลอดภัยของคุณมีเหตุผลเฉพาะให้เปลี่ยน
เปิดใช้ Request user authorization during installation เพื่อให้ผู้ใช้อนุญาตแอประหว่างการติดตั้งหรือขั้นตอนเชื่อมต่อ
ภายใต้ “สามารถติดตั้ง GitHub App นี้ได้ที่ใด?”ให้เลือกตัวเลือกที่แคบที่สุดซึ่งเหมาะกับการเปิดใช้งานของคุณ
สร้าง GitHub App
กำหนดค่าสิทธิ์และเหตุการณ์
เลือกสิทธิ์ขั้นต่ำที่จำเป็นสำหรับการดำเนินการของ ChatGPT ที่คุณวางแผนจะเปิดใช้
สำหรับการค้นพบ Repository และถาม-ตอบแบบอ่านอย่างเดียว ให้เริ่มด้วยสิทธิ์อ่าน เช่น:
Metadata: อ่านอย่างเดียว GitHub กำหนดให้ GitHub Apps ต้องมี metadata
Contents: อ่านอย่างเดียว สำหรับการเข้าถึงเนื้อหาไฟล์และ Repository
Issues: อ่านอย่างเดียว หากต้องค้นหาหรืออ่าน issue
Pull requests: อ่านอย่างเดียว หากต้องค้นหา Pull Request หรือใช้บริบทการรีวิว
Actions: อ่านอย่างเดียว หากต้องใช้สถานะการรันเวิร์กโฟลว์ งาน บันทึก หรืออาร์ติแฟกต์
สำหรับเวิร์กโฟลว์แบบเขียน ให้เพิ่มสิทธิ์เขียนเฉพาะที่จำเป็น เช่น Contents, Pull requests, Issues, Actions หรือ Workflows ใช้สิทธิ์ที่แคบที่สุดซึ่งรองรับการดำเนินการของ ChatGPT ที่ต้องการ
เหตุการณ์ webhook ควรตรงกับเวิร์กโฟลว์ที่คุณรองรับ เหตุการณ์ทั่วไป ได้แก่ Installation, Installation repositories, Push, Pull request, Issues, Issue comment, Workflow run และ Workflow job
สร้างและคัดลอกข้อมูลประจำตัว GitHub App
ในการตั้งค่า GitHub App ให้คัดลอก Client ID
สร้าง Client secret แล้วคัดลอกทันที
ภายใต้ Private keys ให้สร้างคีย์ส่วนตัว
ดาวน์โหลดไฟล์ .pem และจัดเก็บอย่างปลอดภัย
เปิดไฟล์ .pem ในเครื่อง แล้วคัดลอกข้อความ PEM ทั้งหมด รวมถึงบรรทัดเริ่มต้นและสิ้นสุด
คีย์ส่วนตัวเป็นข้อมูลละเอียดอ่อน ปฏิบัติต่อเหมือนข้อมูลประจำตัว หากถูกเปิดเผย ให้สร้างคีย์ส่วนตัวใหม่ อัปเดตการตั้งค่าแอป ChatGPT และลบคีย์ที่ถูกละเมิดใน GitHub Enterprise
ตั้งค่าให้เสร็จใน ChatGPT
กลับไปที่แท็บตั้งค่าเทมเพลต ChatGPT
วาง Client ID ของ GitHub App ใน รหัสไคลเอ็นต์ OAuth
วาง Client secret ของ GitHub App ใน ข้อมูลลับไคลเอ็นต์ OAuth
ปล่อย ขอบเขต ไว้ตามเดิม เว้นแต่องค์กรของคุณตั้งใจต้องการแทนที่ค่าเริ่มต้นของเทมเพลต
ยืนยันว่าชื่อโฮสต์ GitHub Enterprise เป็นชื่อโฮสต์เท่านั้น เช่น
github.example.comวางหรืออัปโหลด PEM คีย์ส่วนตัวของ GitHub App ลงในคีย์ส่วนตัวของ GitHub App
ยืนยันว่ามี webhook secret ที่สร้างขึ้น
สร้างแอปฉบับร่าง
เปิดรายละเอียดแอปฉบับร่างที่สร้างใน ChatGPT แล้วคัดลอก URL webhook ที่สร้างขึ้น
URL webhook ควรมีลักษณะดังนี้: https://connectors.api.openai.org/connectors/<connector_id>/webhook
ตั้งค่า webhook ให้เสร็จใน GitHub Enterprise
กลับไปที่การตั้งค่า GitHub App ใน GitHub Enterprise
เปิดการตั้งค่าทั่วไปของ GitHub App
เปิดใช้ Active webhooks หากยังไม่ได้เปิดใช้
วาง URL webhook ของ ChatGPT ใน Webhook URL
วาง webhook secret ของ ChatGPT ใน Webhook secret
เปิดใช้การตรวจสอบ SSL ไว้
ยืนยันว่าเหตุการณ์ webhook ที่สมัครรับตรงกับสิทธิ์และการดำเนินการที่คุณเปิดใช้
บันทึกการเปลี่ยนแปลง
เผยแพร่และจัดการแอปใน ChatGPT
การสร้างแอปฉบับร่างไม่ได้ทำให้สมาชิกใช้งานได้โดยอัตโนมัติ หลังจากตรวจสอบฉบับร่างแล้ว:
เผยแพร่แอปฉบับร่าง
ยืนยันว่าแอปปรากฏใน การตั้งค่าเวิร์กสเปซ > แอป > เปิดใช้แล้ว
กำหนดค่า การเข้าถึงของผู้ใช้ สำหรับบทบาทที่ควรใช้แอป
ตรวจสอบ การควบคุมการดำเนินการ สำหรับการดำเนินการอ่านและเขียน
ตรวจสอบ สิทธิ์ของแอป เพื่อเลือกเวลาที่ ChatGPT จะขอให้สมาชิกยืนยันก่อนใช้แอป
ขอให้ผู้ใช้ทดสอบที่ได้รับอนุญาตเปิด แอปใน ChatGPT และยืนยันว่าแอปปรากฏ
สิทธิ์ของแอปเหล่านี้มีผลกับการสนทนาใน ChatGPT เอเจนต์ของเวิร์กสเปซใช้การควบคุมต่อเอเจนต์ที่กำหนดโดยผู้สร้างเอเจนต์ เพื่อระบุว่าการดำเนินการของแอปใดใช้งานได้ และเมื่อใดที่ผู้ใช้ปลายทางต้องอนุมัติ สำหรับพฤติกรรมของเอเจนต์ โปรดดู: เอเจนต์ในเวิร์กสเปซ ChatGPT สำหรับ Enterprise และ Business
ติดตั้งและทดสอบ GitHub App
ใน GitHub Enterprise ให้ติดตั้งแอป GitHub ในองค์กรหรือบัญชี
เลือก Repository ทั้งหมดหรือ Repository ที่เลือกตามนโยบายเวิร์กสเปซ
เริ่มขั้นตอนเชื่อมต่อจาก ChatGPT ในฐานะผู้ใช้ที่ได้รับอนุญาต
อนุญาตแอป GitHub เมื่อมีข้อความแจ้ง
เรียกใช้การดำเนินการอ่านขนาดเล็กก่อน เช่น แสดงรายการ Repository ที่เข้าถึงได้ หรือดึง Pull Request ที่ทราบ
หากเปิดใช้การดำเนินการเขียน ให้ทดสอบกับ Repository ที่มีความเสี่ยงต่ำก่อนเปิดใช้งานในวงกว้าง
ลักษณะการทำงานของชื่อโฮสต์และ OAuth
ChatGPT ใช้ชื่อโฮสต์เพื่อสร้าง endpoint ของ GitHub Enterprise ป้อนเฉพาะโฮสต์ เช่น github.example.com หรือ octocorp.ghe.com
อย่าป้อนพาธ API, พาธ Repository หรือ github.com เว้นแต่นั่นคือโฮสต์ GitHub Enterprise ที่แน่นอนสำหรับแอปนี้
การแก้ปัญหา
Redirect URI ไม่ตรงกัน: ยืนยันว่า URL Callback ของ GitHub App ตรงกับ URL Callback ที่แสดงใน ChatGPT ทุกประการ
ChatGPT สร้างหรือบันทึกแอปฉบับร่างไม่ได้: ยืนยันว่ามีฟิลด์ที่จำเป็นครบถ้วน รวมถึงชื่อโฮสต์, รหัสไคลเอ็นต์ OAuth, ข้อมูลลับไคลเอ็นต์ OAuth, คีย์ส่วนตัว และ webhook secret
การตรวจสอบสิทธิ์สำเร็จแต่การเรียก Repository ล้มเหลว: ยืนยันว่าติดตั้ง GitHub App แล้วและมีสิทธิ์เข้าถึง Repository
API ส่งคืน 403 หรือสิทธิ์ไม่เพียงพอ: เพิ่มสิทธิ์ GitHub App ที่ขาด และให้เจ้าของการติดตั้งอนุมัติสิทธิ์ที่อัปเดตหากมีข้อความแจ้ง
ไม่มี Repository ปรากฏ: ยืนยันว่าการติดตั้งแอปรวม Repository ที่คาดไว้ และผู้ใช้ที่อนุญาตใน ChatGPT มีสิทธิ์เข้าถึง
การส่ง webhook ล้มเหลว: ยืนยันว่า URL webhook และ webhook secret ตรงกับค่าจาก ChatGPT เปิดใช้การตรวจสอบ SSL ไว้ และตรวจสอบให้แน่ใจว่าโฮสต์ GitHub Enterprise เข้าถึง
connectors.api.openai.orgได้ข้อผิดพลาดคีย์ส่วนตัว: ยืนยันว่าคัดลอกเนื้อหา PEM ครบถ้วน รวมถึงบรรทัดเริ่มต้นและสิ้นสุด
