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

為 ChatGPT 和 Codex 設定 GitLab Self-Managed 應用程式範本

了解工作區管理員如何使用機構的 GitLab OAuth 應用程式,為 GitLab Self-Managed 或 GitLab Dedicated 執行個體設定 GitLab Self-Managed 應用程式範本。

更新日期:4 days ago

ChatGPT 和 Codex 中的 GitLab 功能目前處於測試階段。

概覽

使用 GitLab Self-Managed 應用程式範本,為 GitLab Self-Managed 或 GitLab Dedicated 執行個體建立工作區專用的應用程式草稿。提供 GitLab 主機名稱和 OAuth 應用程式憑證,檢查應用程式草稿,然後發佈供符合資格的工作區成員使用。發佈後,即可在 ChatGPT 對話和 Codex 工作階段中使用應用程式已啟用的操作。

如需了解支援的 GitLab 功能、適用範圍、權限、資料使用方式及網絡要求,請參閱:將 GitLab 連接至 ChatGPT 和 Codex。

設定內容

你將從 GitLab Self-Managed 應用程式範本建立工作區專用的應用程式。此應用程式會使用:

  • 在你的 GitLab Self-Managed 或 GitLab Dedicated 主機上註冊的 GitLab OAuth 應用程式。

  • GitLab OAuth 的應用程式 ID 和密鑰,用於使用者授權。

  • 必要的 OAuth 權限範圍:api、write_repository 和 openid。

  • 你的 GitLab 主機名稱,例如 gitlab.example.com,用以推導出網頁、API、授權和權杖端點。

開始前的準備

你需要:

  • ChatGPT 工作區管理員或擁有者權限。

  • 在 GitLab 中建立 OAuth 應用程式的權限:由群組擁有的應用程式需要群組擁有者權限;適用於整個執行個體的應用程式則需要執行個體管理員權限。

  • 只有 GitLab 主機名稱,不含 https://、連接埠或路徑。請使用 GitLab Self-Managed 或 GitLab Dedicated 主機,而非 gitlab.com。

  • 決定 ChatGPT 和 Codex 應支援哪些 GitLab 操作,例如程式碼庫搜尋、合併請求工作流程、議題工作流程、檔案編輯,或更廣泛的 Codex 工作流程。

在不同分頁中保持開啟 ChatGPT 和 GitLab。原樣複製 ChatGPT 顯示的重新導向 URI;請勿自行建立或修改。

如要從管理控制台開啟應用程式頁面,請選取目標 ChatGPT 工作區,開啟外掛程式,然後選取管理舊版應用程式。

需要準備的值

  • GitLab 主機名稱:例如 gitlab.example.com。

  • 重新導向 URI:從 ChatGPT 範本設定流程中複製。

  • GitLab OAuth 應用程式 ID。

  • GitLab OAuth 密鑰。

  • OAuth 權限範圍:從 ChatGPT 範本設定流程中複製。

Start the template setup in ChatGPT

  1. In ChatGPT, switch to the workspace where the app should be available.

  2. Go to Workspace settings > Apps.

  3. In Directory, find GitLab, open its GitLab Self-Managed app template, and select Enable.

  4. Enter a clear app name and description.

  5. Enter the GitLab hostname, such as gitlab.example.com.

  6. Copy the Redirect URI shown in ChatGPT, and keep this tab open.

Example: https://chatgpt.com/connector/oauth/<redirect_id>. Do not remove the redirect ID, add a trailing slash, or replace the URI with a generic ChatGPT URL.

在 GitLab 中建立 GitLab OAuth 應用程式

選擇建立應用程式的位置

  1. 開啟你的 GitLab 主機,例如 https://gitlab.example.com。

  2. 選擇建立適用於整個執行個體的應用程式,還是由群組擁有的應用程式。此選擇會決定由誰管理應用程式;專案存取權限仍取決於授權使用者的 GitLab 權限及已授予的 OAuth 權限範圍。

  3. 如要建立適用於整個執行個體的應用程式,請前往管理 > 應用程式。如要建立由群組擁有的應用程式,請前往該群組的設定 > 應用程式。

新增應用程式詳細資料

  1. 選取新增應用程式或加入新應用程式。

  2. 輸入清晰易辨的應用程式名稱,例如 GitLab Self-Managed 或 GitLab Dedicated。

  3. 在重新導向 URI 中,原樣貼上從 ChatGPT 複製的 URI。

  4. 為此伺服器端 OAuth 應用程式保持啟用機密選項。

設定存取權限並儲存

  1. 對於適用於整個執行個體的應用程式,GitLab 建議選取受信任。這樣便會略過使用者授權提示。

  2. 選取 api、write_repository 和 openid 權限範圍。

  3. 檢查哪些人可以管理應用程式,並確認授權的 GitLab 使用者具備適當的群組和專案權限。

  4. 儲存應用程式。

OAuth 權限範圍要求

範本會為 ChatGPT 和 Codex 中已啟用的 GitLab 操作,要求以下 OAuth 權限範圍:

  • api:應用程式提供的 GitLab API 操作所需,包括合併請求、議題及 CI/CD 操作。

  • write_repository:透過 Git 向程式碼庫執行寫入操作所需。

  • openid:取得 OpenID Connect 身分及成員資格資訊所需。

複製 GitLab OAuth 憑證

在已儲存的 GitLab 應用程式中,複製應用程式 ID 和密鑰。請將密鑰視為憑證妥善保管。如密鑰外洩,請在 GitLab 中重新產生密鑰,並建立新的工作區應用程式。

在 ChatGPT 中完成設定

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

  2. 將 GitLab 的應用程式 ID 貼上至 OAuth 用戶端 ID。

  3. 將 GitLab 的密鑰貼上至 OAuth 用戶端密鑰。

  4. 確認 GitLab 主機名稱欄位只包含主機名稱,例如 gitlab.example.com。

  5. 選取建立草稿。

  6. 開啟應用程式草稿的詳細資料,並檢查「角色存取權限」和「設定操作」。

發佈及管理供 ChatGPT 和 Codex 使用的應用程式

建立應用程式草稿後,成員不會自動獲得使用權。檢查草稿後:

  1. 為應用程式草稿選取發佈。

  2. 前往管理控制台,選取目標 ChatGPT 工作區,開啟外掛程式,然後確認預定角色可使用 GitLab。

  3. 檢查應使用此應用程式的角色所獲授的角色存取權限。

  4. 在設定操作中,檢查可用的讀取和寫入操作。

  5. 在設定批准要求中,選擇哪些情況下 ChatGPT 或 Codex 使用應用程式前,必須先由使用者批准操作。

  6. 請一位具有存取權限的測試使用者,從外掛程式目錄或設定 > 外掛程式開啟 GitLab。確認使用者可以安裝外掛程式,並連接至從 GitLab Self-Managed 範本建立的應用程式。

這些應用程式批准設定適用於 ChatGPT 對話和 Codex 對話串。

設定 GitLab 活動以使用 Codex 程式碼審查

應用程式發佈後,如計劃使用 Codex 程式碼審查,請在 Codex 中設定 GitLab 活動。此活動設定會配置所需的 Webhook 事件。

  1. 開啟 Codex 連接器設定。

  2. 設定工作區服務帳戶。讓 Codex 建立帳戶,或提供現有服務帳戶的個人存取權杖。

  3. 為專案或其其中一個上層群組啟用 GitLab 活動。

  4. 如 Codex 需要執行編碼任務或使用專案專屬設定,請建立專案環境。

GitLab 應用程式會使用使用者的 OAuth 授權,在 ChatGPT 和 Codex 中執行讀取及已啟用的操作。當 Codex 在 GitLab Self-Managed 或 GitLab Dedicated 上執行審查寫入操作時,工作區管理的服務帳戶權杖會決定 Codex 以甚麼身分,以及在哪些專案中發表留言或回應。

延伸閱讀:使用 Codex 審查 GitLab 合併請求。

連接並測試 GitLab 應用程式

  1. 以具有存取權限的使用者身分,從外掛程式目錄或設定 > 外掛程式開啟 GitLab。選取安裝外掛程式,然後選取連接。

  2. 如工作區有多個 GitLab 應用程式,請選擇對應此 GitLab Self-Managed 或 GitLab Dedicated 主機的應用程式。

  3. 收到提示時,授權 GitLab OAuth 應用程式。

  4. 先在 ChatGPT 或 Codex 中執行小規模的讀取操作,例如列出可存取的專案,或擷取已知的合併請求。

  5. 如已啟用寫入操作,請先在低風險專案中,以及每個計劃使用這些操作的產品中進行測試,再擴大推行。

主機名稱與 OAuth 運作方式

應用程式會根據主機名稱推導出 GitLab 端點。只需輸入主機名稱,例如 gitlab.example.com。請勿包含 https://、API 或程式碼庫路徑、連接埠,亦不可使用 gitlab.com。此範本適用於 GitLab Self-Managed 或 GitLab Dedicated。如使用 GitLab.com (SaaS),請使用 GitLab 應用程式。

排解 GitLab Self-Managed 應用程式設定問題

  • 重新導向 URI 不符:確認 GitLab OAuth 應用程式的重新導向 URI 與 ChatGPT 顯示的重新導向 URI 完全一致。

  • ChatGPT 無法建立或儲存應用程式草稿:確認已填寫主機名稱、應用程式 ID、密鑰及重新導向 URI。

  • 驗證成功但專案呼叫失敗:確認授權的 GitLab 使用者可存取該專案,且 OAuth 應用程式具備範本要求的權限範圍。

  • API 傳回 403 或權限不足:確認已連接的 GitLab 帳戶具備所需的專案或群組權限,且 OAuth 應用程式包含範本要求的權限範圍。

  • 無法存取任何專案:確認使用者具備專案存取權限、已連接至目標 GitLab 執行個體,並已在 ChatGPT 或 Codex 中選取正確的 GitLab 應用程式。

這篇文章對你有幫助嗎?