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
In ChatGPT, switch to the workspace where the app should be available.
Go to Workspace settings > Apps.
In Directory, find GitLab, open its GitLab Self-Managed app template, and select Enable.
Enter a clear app name and description.
Enter the GitLab hostname, such as gitlab.example.com.
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 應用程式
選擇建立應用程式的位置
開啟你的 GitLab 主機,例如 https://gitlab.example.com。
選擇要建立適用於整個執行個體的應用程式,還是群組所屬的應用程式。此選擇會決定由誰管理應用程式;專案存取權仍取決於進行授權的使用者所擁有的 GitLab 權限,以及授予的 OAuth 範圍。
若要建立適用於整個執行個體的應用程式,請前往管理員 > 應用程式。若要建立群組所屬的應用程式,請前往該群組的設定 > 應用程式。
新增應用程式詳細資料
選取新應用程式或新增應用程式。
輸入易於辨識的應用程式名稱,例如 GitLab Self-Managed 或 GitLab Dedicated。
在重新導向 URI 欄位中,原樣貼上從 ChatGPT 複製的 URI。
請為此伺服器端 OAuth 應用程式保持啟用機密選項。
設定存取權並儲存
對於適用於整個執行個體的應用程式,GitLab 建議勾選受信任。如此即可略過使用者授權提示。
選取 api、write_repository 和 openid 範圍。
檢查哪些人可以管理此應用程式,並確認進行授權的 GitLab 使用者具備適當的群組與專案權限。
儲存應用程式。
OAuth 範圍需求
為了在 ChatGPT 和 Codex 中執行已啟用的 GitLab 動作,此範本會要求下列 OAuth 範圍:
api:執行此應用程式提供的 GitLab API 操作所必需,包括合併請求、議題與 CI/CD 動作。
write_repository:透過 Git 執行程式碼庫寫入操作所必需。
openid:取得 OpenID Connect 身分與成員資格資訊所必需。
複製 GitLab OAuth 憑證
在已儲存的 GitLab 應用程式中,複製應用程式 ID 和密鑰。請將密鑰視為憑證妥善保管。若密鑰外洩,請在 GitLab 中重新產生密鑰,並建立新的工作區應用程式。
在 ChatGPT 中完成設定
返回 ChatGPT 範本設定分頁。
將 GitLab 的應用程式 ID 貼到 OAuth 用戶端 ID 欄位。
將 GitLab 的密鑰貼到 OAuth 用戶端密鑰欄位。
確認 GitLab 主機名稱欄位僅包含主機名稱,例如 gitlab.example.com。
選取建立草稿。
開啟應用程式草稿的詳細資料,並檢查「角色存取權」與「設定動作」。
發布與管理供 ChatGPT 和 Codex 使用的應用程式
建立應用程式草稿後,成員不會自動取得使用權。檢查草稿後:
為應用程式草稿選取發布。
前往管理員主控台,選取目標 ChatGPT 工作區,開啟外掛程式,然後確認指定角色可使用 GitLab。
在角色存取權中,檢查應可使用此應用程式的角色。
在設定動作中,檢查可用的讀取與寫入動作。
在設定核准中,選擇哪些情況需要使用者先核准動作,ChatGPT 或 Codex 才能使用此應用程式。
請一位具有存取權的測試使用者,從外掛程式目錄或設定 > 外掛程式開啟 GitLab。確認使用者可以安裝此外掛程式,並連接至以 GitLab Self-Managed 範本建立的應用程式。
這些應用程式核准設定適用於 ChatGPT 對話與 Codex 討論串。
設定 GitLab 活動以使用 Codex 程式碼審查
應用程式發布後,如果打算使用 Codex 程式碼審查,請在 Codex 中設定 GitLab 活動。此活動設定流程會設定必要的網路掛鉤事件。
開啟 Codex 連接器設定。
設定工作區服務帳號。讓 Codex 建立帳號,或提供現有服務帳號的個人存取權杖。
為專案或其任一上層群組啟用 GitLab 活動。
如果 Codex 需要執行程式設計任務或使用專案專屬設定,請建立專案環境。
GitLab 應用程式會使用使用者 OAuth 授權,在 ChatGPT 和 Codex 中執行讀取操作與已啟用的動作。當 Codex 在 GitLab Self-Managed 或 GitLab Dedicated 上執行審查寫入操作時,由工作區管理的服務帳號權杖會決定 Codex 使用的身分,以及可在哪些專案中留言或加入表情回應。
延伸閱讀:使用 Codex 審查 GitLab 合併請求。
連接並測試 GitLab 應用程式
以具有存取權的使用者身分,從外掛程式目錄或設定 > 外掛程式開啟 GitLab。選取安裝外掛程式,然後選取連接。
如果工作區中有多個 GitLab 應用程式,請選擇對應此 GitLab Self-Managed 或 GitLab Dedicated 主機的應用程式。
出現提示時,請授權 GitLab OAuth 應用程式。
先在 ChatGPT 或 Codex 中執行簡單的讀取動作,例如列出可存取的專案,或擷取已知的合併請求。
如果已啟用寫入動作,請先在低風險專案中,透過每個預計使用這些動作的產品進行測試,再擴大使用範圍。
主機名稱與 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 應用程式。
