OpenAI
此頁面由機器翻譯。查看原文英文文章

在 ChatGPT 中設定 GitHub Enterprise 應用程式範本

了解工作區管理員如何使用其組織自己的 GitHub App,在 ChatGPT 中設定 GitHub Enterprise 應用程式範本。

更新日期:7 days ago

概覽

如果你是 ChatGPT 工作區管理員,正在為組織設定 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 中開始設定範本

  1. 在 ChatGPT 中,切換至應用程式應可使用的工作區。

  2. 開啟工作區設定 > 應用程式

  3. 選擇目錄

  4. 搜尋 GitHub Enterprise。

  5. 選擇 GitHub Enterprise 應用程式範本並開始設定。

  6. 輸入清晰的應用程式名稱和描述,例如 GitHub Enterprise 或 GitHub Enterprise - Engineering。

  7. 輸入 GitHub Enterprise 主機名稱,例如 github.example.com

  8. 複製 ChatGPT 中顯示的回呼 URL。保持此分頁開啟。

  9. 如果設定期間顯示已產生的 webhook 密鑰,請將其複製。

回呼 URL 範例:https://chatgpt.com/connector/oauth/<callback_id>

請勿移除回呼 ID、新增結尾斜線,或以一般 ChatGPT URL 取代。

在 GitHub Enterprise 中建立 GitHub App

  1. 開啟你的 GitHub Enterprise 主機,例如 https://github.example.com

  2. 前往應擁有該應用程式的組織或帳戶。

  3. 開啟「Settings > Developer settings > GitHub Apps」。

  4. 選擇New GitHub App

  5. 輸入清晰的應用程式名稱,例如 ChatGPT GitHub Enterprise Connector。

  6. 輸入首頁 URL。如果沒有專用內部頁面,請使用 GitHub Enterprise 組織 URL。

  7. 在 Callback URL 中,貼上從 ChatGPT 複製的確切回呼 URL。

  8. 除非你的安全團隊有特定理由要變更,否則請保持啟用「Expire user authorization tokens」。

  9. 啟用「Request user authorization during installation」,讓使用者可在安裝或連線流程期間授權應用程式。

  10. 在「Where can this GitHub App be installed?」下,選擇符合你推出計劃的最小範圍選項。

  11. 建立 GitHub App。

設定權限和事件

選擇你計劃啟用的 ChatGPT 動作所需的最低權限。

如要進行唯讀程式碼庫探索和問答,請從以下讀取權限開始:

  • 中繼資料:唯讀。GitHub 要求 GitHub Apps 具備中繼資料。

  • 內容:唯讀,用於存取檔案和程式碼庫內容。

  • 問題:唯讀,如需要搜尋或讀取問題。

  • 拉取請求:唯讀,如需要搜尋拉取請求或檢閱上下文。

  • 動作:唯讀,如需要工作流程執行狀態、作業、日誌或成品。

如要使用寫入工作流程,只在需要時新增寫入權限,例如內容、拉取請求、問題、動作或工作流程。使用可支援預期 ChatGPT 動作的最小權限。

Webhook 事件應與你支援的工作流程相符。常見事件包括 Installation、Installation repositories、Push、Pull request、Issues、Issue comment、Workflow run 和 Workflow job。

產生並複製 GitHub App 憑證

  1. 在 GitHub App 設定中,複製用戶端 ID

  2. 產生用戶端密鑰並立即複製。

  3. 私密金鑰下,產生私密金鑰。

  4. 下載 .pem 檔案並安全儲存。

  5. 在本機開啟 .pem 檔案,並複製完整 PEM 文字,包括開頭和結尾行。

私密金鑰屬於敏感資料。請像處理憑證一樣處理它。如果它已外洩,請產生新的私密金鑰、更新 ChatGPT 應用程式設定,並在 GitHub Enterprise 中刪除受影響的金鑰。

在 ChatGPT 中完成設定

  1. 返回 ChatGPT 範本設定分頁。

  2. 將 GitHub App 用戶端 ID 貼到 OAuth 用戶端 ID

  3. 將 GitHub App 用戶端密鑰貼到 OAuth 用戶端密鑰

  4. 除非你的組織有意覆寫範本預設值,否則請保持範圍不變。

  5. 確認 GitHub Enterprise 主機名稱只包含主機名稱,例如 github.example.com

  6. 將 GitHub App 私密金鑰 PEM 貼上或上載至 GitHub App 私密金鑰。

  7. 確認已產生的 webhook 密鑰存在。

  8. 建立草稿應用程式。

  9. 在 ChatGPT 中開啟已建立的草稿應用程式詳細資料,並複製已產生的 webhook URL。

webhook URL 應如下所示:https://connectors.api.openai.org/connectors/<connector_id>/webhook

在 GitHub Enterprise 中完成 webhook 設定

  1. 返回 GitHub Enterprise 中的 GitHub App 設定。

  2. 開啟 GitHub App 一般設定。

  3. 如果尚未啟用 Active webhooks,請將其啟用。

  4. 將 ChatGPT webhook URL 貼到 Webhook URL。

  5. 將 ChatGPT webhook 密鑰貼到 Webhook secret。

  6. 保持 SSL 驗證啟用。

  7. 確認已訂閱的 webhook 事件與你啟用的權限和動作相符。

  8. 儲存變更。

在 ChatGPT 中發佈和管理應用程式

建立草稿應用程式不會自動讓成員可使用。檢閱草稿後:

  1. 發佈草稿應用程式。

  2. 確認應用程式出現在工作區設定 > 應用程式 > 已啟用

  3. 為應使用此應用程式的角色設定使用者存取權

  4. 檢閱動作控制的讀取和寫入動作。

  5. 檢閱應用程式權限,以選擇 ChatGPT 何時在使用應用程式前詢問成員。

  6. 請獲允許的測試使用者開啟 ChatGPT 中的應用程式,並確認該應用程式出現。

這些應用程式權限適用於 ChatGPT 對話。工作區智能代理會使用由智能代理建立者設定的每個智能代理控制項,判斷哪些應用程式動作可用,以及何時要求終端使用者批准。有關智能代理行為,請參閱:適用於 Enterprise 和 Business 的 ChatGPT 工作區智能代理

安裝並測試 GitHub App

  1. 在 GitHub Enterprise 中,於組織或帳戶安裝 GitHub app。

  2. 根據工作區政策選擇所有程式碼庫或指定程式碼庫。

  3. 以獲允許使用者身分從 ChatGPT 開始連線流程。

  4. 系統提示時,授權 GitHub app。

  5. 先執行小型讀取動作,例如列出可存取的程式碼庫或擷取已知拉取請求。

  6. 如果已啟用寫入動作,請先在低風險程式碼庫測試,再擴大推出。

主機名稱和 OAuth 行為

ChatGPT 會使用主機名稱推導 GitHub Enterprise 端點。只輸入主機,例如 github.example.comoctocorp.ghe.com

請勿輸入 API 路徑、程式碼庫路徑或 github.com,除非它正是此應用程式的 GitHub Enterprise 主機。

疑難排解

  • 重新導向 URI 不相符:確認 GitHub App 回呼 URL 與 ChatGPT 中顯示的回呼 URL 完全相符。

  • ChatGPT 無法建立或儲存草稿應用程式:確認所有必填欄位均已填寫,包括主機名稱、OAuth 用戶端 IDOAuth 用戶端密鑰、私密金鑰和 webhook 密鑰。

  • 驗證成功但程式碼庫呼叫失敗:確認 GitHub App 已安裝,並有權存取該程式碼庫。

  • API 傳回 403 或權限不足:新增缺少的 GitHub App 權限;如系統提示,請安裝擁有者批准更新後的權限。

  • 沒有顯示程式碼庫:確認應用程式安裝包含預期的程式碼庫,且在 ChatGPT 中授權的使用者有權存取它們。

  • Webhook 傳送失敗:確認 webhook URL 和 webhook 密鑰與 ChatGPT 中的值相符,保持 SSL 驗證啟用,並確保 GitHub Enterprise 主機可連接 connectors.api.openai.org

  • 私密金鑰錯誤:確認已複製完整 PEM 內容,包括開頭和結尾行。

參考資料

這篇文章對你有幫助嗎?