概觀
如果您是 ChatGPT 工作區管理員,正在使用組織自己的 GitHub App 設定 GitHub Enterprise 應用程式範本,請使用本指南。範本不是成員最終使用的應用程式。它是一個設定流程,會在您提供必要的 GitHub Enterprise 設定後,建立工作區專屬草稿應用程式。
對於 GitHub Enterprise,設定會將 ChatGPT 連接到您組織的 GitHub Enterprise 主機。您會建立 GitHub App、註冊 ChatGPT 回呼 URL、產生憑證,然後將這些值貼到 ChatGPT 範本設定流程中。ChatGPT 建立草稿應用程式後,您可以像管理其他工作區應用程式一樣發布和管理它。
您正在設定的內容
您正在 ChatGPT 中建立工作區專屬 GitHub Enterprise 應用程式。此應用程式使用:
在您的 GitHub Enterprise 主機上註冊的 GitHub App。
用於使用者 OAuth 授權的 GitHub App 用戶端 ID 和用戶端密鑰。
GitHub App 私密金鑰,讓 ChatGPT 可發行用於程式碼庫作業的安裝 Token。
Webhook 密鑰和 Webhook URL,讓 GitHub Enterprise 可將安裝和程式碼庫事件傳回 ChatGPT。
您的 GitHub Enterprise 主機名稱,例如
github.example.com。
請建立 GitHub App,而不是獨立的 GitHub OAuth App。ChatGPT 範本設定需要 GitHub App 憑證、私密金鑰和 Webhook 設定。
開始之前
您需要:
ChatGPT 工作區管理員或擁有者存取權。
可建立和安裝 GitHub Apps 的 GitHub Enterprise 管理員或組織擁有者存取權。
僅 GitHub Enterprise 主機名稱,不含
https://或路徑。決定 ChatGPT 應支援哪些程式碼庫動作,例如唯讀程式碼庫搜尋、拉取要求工作流程、問題工作流程、檔案編輯、GitHub Actions,或更廣泛的 Codex 工作流程。
安全處理 GitHub App 私密金鑰和用戶端密鑰的位置。
在不同分頁中保持 ChatGPT 和 GitHub Enterprise 開啟。請勿自行編造回呼 URL。複製 ChatGPT 中顯示的確切回呼 URL。
要準備的值
GitHub Enterprise 主機名稱:例如
github.example.com。回呼 URL:從 ChatGPT 範本設定流程複製此值。
GitHub App 用戶端 ID。
GitHub App 用戶端密鑰。
GitHub App 私密金鑰 PEM。
ChatGPT 產生的 Webhook 密鑰。
在 ChatGPT 中建立草稿應用程式後產生的 Webhook URL。
在 ChatGPT 中開始範本設定
在 ChatGPT 中,切換到應用程式應可使用的工作區。
開啟工作區設定 > 應用程式。
選取目錄。
搜尋 GitHub Enterprise。
選取 GitHub Enterprise 應用程式範本並開始設定。
輸入清楚的應用程式名稱和描述,例如 GitHub Enterprise 或 GitHub Enterprise - Engineering。
輸入 GitHub Enterprise 主機名稱,例如
github.example.com。複製 ChatGPT 中顯示的回呼 URL。保持此分頁開啟。
如果設定期間顯示產生的 Webhook 密鑰,請複製該密鑰。
回呼 URL 範例:https://chatgpt.com/connector/oauth/<callback_id>
請勿移除回呼 ID、新增結尾斜線,或將其取代為一般 ChatGPT URL。
在 GitHub Enterprise 中建立 GitHub App
開啟您的 GitHub Enterprise 主機,例如
https://github.example.com。前往應擁有此應用程式的組織或帳戶。
開啟設定 > 開發人員設定 > GitHub Apps。
選取新增 GitHub App。
輸入清楚的應用程式名稱,例如 ChatGPT GitHub Enterprise Connector。
輸入首頁 URL。如果沒有專屬內部頁面,請使用 GitHub Enterprise 組織 URL。
在「回呼 URL」中,貼上從 ChatGPT 複製的確切回呼 URL。
除非您的安全團隊有特定理由要變更,否則請保持啟用「讓使用者授權 Token 到期」。
啟用「安裝期間要求使用者授權」,讓使用者可在安裝或連線流程中授權應用程式。
在「此 GitHub App 可以安裝在哪裡?」下方,選擇符合推出計畫的最小範圍選項。
建立 GitHub App。
設定權限和事件
選擇您計畫啟用的 ChatGPT 動作所需的最低權限。
對於唯讀程式碼庫探索和問答,請從下列讀取權限開始:
中繼資料:唯讀。GitHub 要求 GitHub Apps 具備中繼資料。
內容:唯讀,用於檔案和程式碼庫內容存取。
問題:唯讀,如果需要搜尋或讀取問題。
拉取要求:唯讀,如果需要搜尋拉取要求或檢閱內容。
動作:唯讀,如果需要工作流程執行狀態、作業、記錄或成品。
對於寫入工作流程,僅在需要之處新增寫入權限,例如內容、拉取要求、問題、動作或工作流程。使用可支援預期 ChatGPT 動作的最小權限範圍。
Webhook 事件應符合您支援的工作流程。常見事件包括安裝、安裝程式碼庫、推送、拉取要求、問題、問題留言、工作流程執行和工作流程作業。
產生並複製 GitHub App 憑證
在 GitHub App 設定中,複製用戶端 ID。
產生用戶端密鑰並立即複製。
在私密金鑰下方,產生私密金鑰。
下載 .pem 檔案並安全儲存。
在本機開啟 .pem 檔案,並複製完整 PEM 文字,包括開頭和結尾行。
私密金鑰屬於敏感資訊。請像對待憑證一樣保護它。如果它遭到外洩,請產生新的私密金鑰、更新 ChatGPT 應用程式設定,並在 GitHub Enterprise 中刪除受害金鑰。
在 ChatGPT 中完成設定
返回 ChatGPT 範本設定分頁。
將 GitHub App 用戶端 ID 貼到 OAuth 用戶端 ID。
將 GitHub App 用戶端密鑰貼到 OAuth 用戶端密鑰。
除非您的組織刻意需要覆寫範本預設值,否則請保持範圍不變。
確認 GitHub Enterprise 主機名稱僅為主機名稱,例如
github.example.com。將 GitHub App 私密金鑰 PEM 貼上或上傳至 GitHub App 私密金鑰。
確認已存在產生的 Webhook 密鑰。
建立草稿應用程式。
在 ChatGPT 中開啟已建立的草稿應用程式詳細資料,並複製產生的 Webhook URL。
Webhook URL 應如下所示:https://connectors.api.openai.org/connectors/<connector_id>/webhook
在 GitHub Enterprise 中完成 Webhook 設定
返回 GitHub Enterprise 中的 GitHub App 設定。
開啟 GitHub App 一般設定。
如果尚未啟用 Active webhooks,請將其啟用。
將 ChatGPT Webhook URL 貼到 Webhook URL。
將 ChatGPT Webhook 密鑰貼到 Webhook secret。
保持啟用 SSL 驗證。
確認訂閱的 Webhook 事件符合您已啟用的權限和動作。
儲存變更。
在 ChatGPT 中發布和管理應用程式
建立草稿應用程式不會自動讓成員可使用它。檢閱草稿後:
發布草稿應用程式。
確認應用程式出現在工作區設定 > 應用程式 > 已啟用中。
為應使用此應用程式的角色設定使用者存取權。
檢閱讀取和寫入動作的動作控制。
檢閱應用程式權限,以選擇 ChatGPT 何時在使用應用程式前詢問成員。
請允許的測試使用者開啟 ChatGPT 中的應用程式,並確認應用程式出現。
這些應用程式權限適用於 ChatGPT 對話。工作區智慧體會使用智慧體建構者設定的各智慧體控制項,判斷可用的應用程式動作,以及何時要求終端使用者核准。如需智慧體行為,請參閱:企業版和商務版的 ChatGPT 工作區智慧體。
安裝並測試 GitHub App
在 GitHub Enterprise 中,將 GitHub 應用程式安裝到組織或帳戶。
依照工作區政策選擇所有程式碼庫或選取的程式碼庫。
以允許的使用者身分,從 ChatGPT 啟動連線流程。
出現提示時授權 GitHub 應用程式。
先執行小型讀取動作,例如列出可存取的程式碼庫或擷取已知的拉取要求。
如果已啟用寫入動作,請先在低風險程式碼庫上測試,再擴大推出。
主機名稱和 OAuth 行為
ChatGPT 會使用主機名稱衍生 GitHub Enterprise 端點。僅輸入主機,例如 github.example.com 或 octocorp.ghe.com。
請勿輸入 API 路徑、程式碼庫路徑或 github.com,除非那正是此應用程式的 GitHub Enterprise 主機。
疑難排解
重新導向 URI 不符:確認 GitHub App 回呼 URL 與 ChatGPT 中顯示的回呼 URL 完全相符。
ChatGPT 無法建立或儲存草稿應用程式:確認所有必要欄位皆已提供,包括主機名稱、OAuth 用戶端 ID、OAuth 用戶端密鑰、私密金鑰和 Webhook 密鑰。
驗證成功但程式碼庫呼叫失敗:確認 GitHub App 已安裝並且可存取該程式碼庫。
API 傳回 403 或權限不足:新增缺少的 GitHub App 權限,並在系統提示時請安裝擁有者核准更新後的權限。
沒有出現程式碼庫:確認應用程式安裝包含預期的程式碼庫,且在 ChatGPT 中授權的使用者具備其存取權。
Webhook 傳遞失敗:確認 Webhook URL 和 Webhook 密鑰與 ChatGPT 中的值相符,保持啟用 SSL 驗證,並確保 GitHub Enterprise 主機可連線至
connectors.api.openai.org。私密金鑰錯誤:確認已複製完整 PEM 內容,包括開頭和結尾行。
