OpenAI
页面内容为机器翻译。查看英文原文。

为 ChatGPT 和 Codex 设置 GitLab Self-Managed 应用模板

了解工作空间管理员如何使用组织的 GitLab OAuth 应用,为 GitLab Self-Managed 或 GitLab Dedicated 实例配置 GitLab Self-Managed 应用模板。

更新于:4 days ago

ChatGPT 和 Codex 中的 GitLab 功能目前处于 Beta 阶段。

概述

使用 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 对话线程。

为 Codex 代码审查设置 GitLab 活动

应用发布后,如果你计划使用 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 应用。

这篇文章对你有帮助吗?