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

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

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

更新于:28 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),用于确定 Web、API、授权和 Token 端点。

开始之前

您需要:

  • ChatGPT 工作空间管理员或所有者权限。

  • 在 GitLab 中创建 OAuth 应用的权限:对于群组所有的应用,需要群组 Owner 权限;对于实例范围的应用,需要实例管理员权限。

  • 仅提供 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 文档

这篇文章对你有帮助吗?