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

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

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

更新日期:28 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、授權和 Token 端點。

開始之前

您需要:

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

  • 可建立 OAuth 應用程式的 GitLab 權限:若是群組擁有的應用程式,須具備群組擁有者存取權;若是整個執行個體使用的應用程式,則須具備執行個體管理員存取權。

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

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

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

要準備的值

  • 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 > Plugins.

  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. 前往工作區設定 > 外掛程式,確認預期的角色可使用 GitLab

  3. 檢查應使用此應用程式之角色的角色存取權

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

  5. 設定核准中,選擇使用者必須在何時核准動作,ChatGPT 或 Codex 才能使用此應用程式。

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

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

為 Codex 程式碼審查設定 GitLab 活動

應用程式發布後,如果您打算使用 Codex 程式碼審查,請在 Codex 中設定 GitLab 活動。此活動設定會設定必要的 Webhook 事件。

  1. 開啟 Codex 連接器設定

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

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

  4. 如果 Codex 需要執行程式設計工作或使用專案專用設定,請建立專案環境

GitLab 應用程式會透過使用者 OAuth,在 ChatGPT 和 Codex 中執行讀取及已啟用的動作。若要讓 Codex 在 GitLab Self-Managed 或 GitLab Dedicated 上寫入審查內容,由工作區管理的服務帳戶 Token 會決定 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 應用程式。

相關 GitLab 文件

這篇文章有幫助嗎?