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
In ChatGPT, switch to the workspace where the app should be available.
Go to Workspace settings > Plugins.
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 應用程式
建立應用程式草稿後,成員不會自動取得使用權。檢查草稿後:
為應用程式草稿選取發布。
前往工作區設定 > 外掛程式,確認預期的角色可使用 GitLab。
檢查應使用此應用程式之角色的角色存取權。
在設定動作中,檢查可用的讀取和寫入動作。
在設定核准中,選擇使用者必須在何時核准動作,ChatGPT 或 Codex 才能使用此應用程式。
請有存取權的測試使用者從外掛程式目錄或設定 > 外掛程式開啟 GitLab。確認使用者可安裝外掛程式,並連線至透過 GitLab Self-Managed 範本建立的應用程式。
這些應用程式核准設定適用於 ChatGPT 對話和 Codex 討論串。
為 Codex 程式碼審查設定 GitLab 活動
應用程式發布後,如果您打算使用 Codex 程式碼審查,請在 Codex 中設定 GitLab 活動。此活動設定會設定必要的 Webhook 事件。
開啟 Codex 連接器設定。
設定工作區服務帳戶。讓 Codex 建立帳戶,或為現有的服務帳戶提供個人存取 Token。
為專案或其任一上層群組啟用 GitLab 活動。
如果 Codex 需要執行程式設計工作或使用專案專用設定,請建立專案環境。
GitLab 應用程式會透過使用者 OAuth,在 ChatGPT 和 Codex 中執行讀取及已啟用的動作。若要讓 Codex 在 GitLab Self-Managed 或 GitLab Dedicated 上寫入審查內容,由工作區管理的服務帳戶 Token 會決定 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 應用程式。
