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
打开 ChatGPT。
打开插件目录。
搜索 GitLab。
选择安装插件。
在 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 连接
打开 ChatGPT。
前往设置 > 插件。
打开 GitLab。
选择卸载。
数据和隐私
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 出站范围。
