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

将 GitLab 连接到 ChatGPT 和 Codex

在 ChatGPT 和 Codex 中访问您的 GitLab 项目,以分析和引用代码、合并请求、议题及 CI/CD 内容,并对其执行操作。

更新于:13 days ago

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

概述

GitLab 插件可让 ChatGPT 和 Codex 获取最新的 GitLab 数据,并在获得相应权限时,对已连接用户有权访问的项目执行操作。它支持项目、群组、代码仓库文件、分支、提交、合并请求、议题、流水线、作业以及相关讨论。

GitLab 插件包括一个适用于 GitLab.com 的 GitLab 应用,以及一个 GitLab Self-Managed 应用模板。插件是用户安装的软件包,应用则是用于访问 GitLab 数据和执行操作的连接。

对于 GitLab Self-Managed 或 GitLab Dedicated,工作空间管理员必须先通过模板创建并发布工作空间专用应用,成员才能连接。详细了解应用模板,并参阅如何设置 GitLab 应用模板

此前支持单独同步的 GitLab Issues 应用已不再提供。按照本文的设置步骤连接当前的 GitLab 应用。该应用会通过与您的提示词相关的 API 请求获取数据。

可用性

可用性可能因套餐和工作空间配置而异。工作空间管理员可在 ChatGPT 中配置 GitLab 插件,并控制其是否可用、哪些人可以使用、启用哪些操作,以及何时需要审批。

GitLab 插件的功能

从 GitLab 读取内容

ChatGPT 和 Codex 可以:

  • 查看项目和群组。

  • 浏览代码仓库树并读取文件。

  • 比较分支、提交和差异。

  • 审查合并请求、审批、议题、备注和讨论。

  • 检查流水线、作业、日志和测试报告。

在 GitLab 中执行操作

根据工作空间设置和 GitLab 权限,ChatGPT 和 Codex 可以:

  • 创建分支和提交。

  • 创建、更新或删除代码仓库文件。

  • 创建或更新合并请求和议题。

  • 添加备注或讨论。

  • 批准、变基或合并合并请求。

  • 应用建议。

  • 创建流水线,或运行和重试作业与流水线。

可用操作取决于工作空间的角色访问权限配置操作配置审批设置,以及授予的 OAuth 权限范围和已连接用户的 GitLab 权限。

在 ChatGPT 中设置 GitLab

连接到 GitLab.com

  1. 打开 ChatGPT。

  2. 打开插件目录

  3. 搜索 GitLab

  4. 选择安装插件

  5. GitLab 页面上,选择连接

如果系统提示,请在 GitLab 中授权 ChatGPT。GitLab 插件会在您授予的 OAuth 权限范围内,以您的 GitLab 用户身份执行操作,因此 ChatGPT 和 Codex 只能访问您有权访问的 GitLab 项目和群组。

连接后,您可以在 ChatGPT 或 Codex 中使用 GitLab,查看项目、文件、合并请求、议题或流水线,也可以请求执行允许的操作。

如需有关安装和管理插件的帮助,请参阅:ChatGPT 和 Codex 中的插件

连接到 GitLab Self-Managed 或 GitLab Dedicated

用户连接前,工作空间管理员必须配置并发布 GitLab Self-Managed 应用模板。有关说明,请参阅:为 ChatGPT 和 Codex 设置 GitLab Self-Managed 应用模板

断开 GitLab 连接

  1. 打开 ChatGPT。

  2. 前往设置 > 插件

  3. 打开 GitLab

  4. 选择卸载

数据和隐私

ChatGPT 和 Codex 如何与 GitLab 协同工作

ChatGPT 和 Codex 使用 GitLab 插件发出与您的提示词相关的 API 请求。例如,它们可以列出代码仓库树、获取特定文件、读取合并请求的差异或讨论、查看议题,或者检查流水线和作业日志。如果已启用的操作可以更改 GitLab,只有在工作空间设置、必要审批以及已连接用户的 GitLab 权限均允许时,ChatGPT 或 Codex 才能执行该操作。

模型训练和 GitLab 内容

默认情况下,使用商业产品(包括 ChatGPT Business、Enterprise、Edu 和 API)的客户所发送的内容不会用于改进我们的模型。如需进一步了解 OpenAI 如何使用企业数据,请参阅:企业隐私

使用个人订阅时,如果已开启为所有人改进模型,OpenAI 可能会使用您的内容训练其模型。如需进一步了解您的数据如何存储和使用,请参阅:数据控制常见问题

无论您是在 ChatGPT 还是 Codex 中使用该应用,GitLab 内容均受相同的工作空间数据控制设置约束。

常见问题

GitLab 插件可以读取哪些内容?

它可以获取已连接用户有权访问的 GitLab 数据,包括项目和群组;代码仓库树、文件、分支、提交和差异;合并请求、议题、备注和讨论;以及 CI/CD 流水线、作业、日志和测试报告。具体可用内容取决于已启用的操作和 GitLab 权限。

ChatGPT 和 Codex 可以在 GitLab 中执行操作吗?

可以,但工作空间管理员必须启用相关操作,并且所有必要的审批均已通过。根据具体配置和您的 GitLab 权限,ChatGPT 和 Codex 可以创建分支和提交;创建、更新或删除代码仓库文件;创建或更新合并请求和议题;添加备注或讨论;批准或合并合并请求;应用建议;以及创建流水线,或运行和重试作业与流水线。

管理员如何限制插件可以执行的操作?

在 ChatGPT 中,工作空间管理员可以使用角色访问权限控制哪些人能够使用应用,使用配置操作启用或停用操作,并使用配置审批要求用户在执行指定操作前确认。GitLab 自身的项目和群组权限仍然有效。

ChatGPT 或 Codex 可以读取特定文件或合并请求的差异吗?

可以。请提供项目和文件名或路径、分支或 ref、合并请求 URL 或内部 ID (IID),也可以描述您要查找的代码行为。如果已启用相应的插件操作且您拥有访问权限,ChatGPT 或 Codex 就能获取相关文件、代码仓库树、提交、差异或合并请求详情。

为什么我看不到某个项目?

ChatGPT 和 Codex 只能访问已连接的 GitLab 用户可见的项目。请确认您连接了预期的 GitLab 账号,有权访问 GitLab 中的相应项目或群组,并且根据所用服务选择了适用于 GitLab.com、GitLab Self-Managed 或 GitLab Dedicated 的正确应用。

GitLab 插件是否支持 GitLab Self-Managed 或 GitLab Dedicated?

标准 GitLab 应用连接到 GitLab.com,可在 ChatGPT 和 Codex 中使用。对于 GitLab Self-Managed 或 GitLab Dedicated,工作空间管理员必须先配置并发布 GitLab Self-Managed 应用模板,用户才能连接。有关说明,请参阅:为 ChatGPT 和 Codex 设置 GitLab Self-Managed 应用模板

如果我的 GitLab 实例阻止网络流量,该怎么办?

如果您的 GitLab Self-Managed 或 GitLab Dedicated 实例限制网络流量:

  • 请让网络管理员将 OpenAI 的 ChatGPT 集成出站范围加入允许列表,以便 GitLab 插件访问您的 GitLab HTTPS 主机和 API。

  • 如果您使用 Codex 项目环境,还需将 Codex 云端出站范围加入允许列表。

  • 如需使用 Codex 代码审查,请允许向 Codex 发送出站 HTTPS Webhook 请求。如果 Webhook 传送失败,请检查 GitLab 的出站请求过滤设置

有关需要加入允许列表的地址,请参阅:OpenAI IP 出站范围

这篇文章对你有帮助吗?