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

将 GitHub 连接到 ChatGPT

将 GitHub 连接到 ChatGPT,通过受支持的实时代码仓库访问来分析、搜索和引用代码。

更新于:10 days ago

概述

将 GitHub 连接到 ChatGPT,即可询问有关代码的问题。

连接 GitHub 后,ChatGPT 可按需检索你有权访问的代码仓库内容,包括代码、README 文件和其他文档。根据你的套餐和产品界面,可用体验可能包括标准聊天、深度研究或智能体工作流。这种实时访问不会创建同步的 GitHub 索引。

GitHub 的可用性可能因套餐、工作空间和产品界面而异。即使无法在标准聊天中使用 GitHub,账户仍可能可以在深度研究或智能体模式中使用 GitHub。有关研究工作流的信息,请参阅:ChatGPT 中的深度研究。

将 GitHub 连接到 ChatGPT

要连接 GitHub,请打开设置 > 插件,然后选择 GitHub 或包含它的插件。有关账号连接步骤,请参阅:在 ChatGPT 中连接和管理应用账号。

接下来,你将跳转到 GitHub,安装并授权 ChatGPT 应用,然后选择允许 ChatGPT 访问的代码仓库。ChatGPT 会按需检索已获授权的代码仓库内容。目前不支持 GitHub 同步,也不支持为代码仓库单独配置索引。

要更改代码仓库访问权限,请按以下步骤操作:

  1. 打开设置。

  2. 选择插件。

  3. 打开 GitHub。

  4. 选择可用的代码仓库管理选项。

要断开 GitHub 连接,请打开同一应用的设置,然后选择断开连接。

根据 GitHub pull request 活动创建任务

符合条件的用户可以在工作中,针对已连接的 github.com 代码仓库内的活动创建事件触发型(基于 webhook)任务。支持的活动可以包括 pull request 已开启、已标记为可供审核或已关闭。根据触发条件,您还可以监控 pull request 审核、评论、提交更新或已完成的合并。

该任务只能访问已为所连接 GitHub 账户授权的代码仓库。事件触发型任务不支持连接自行托管的 GitHub Enterprise。

分享使用 GitHub 的计划任务

当您的账户支持分享计划任务时,您可以分享指令中提及 GitHub 且符合条件的计划任务。符合条件的接收者可以连接自己的 GitHub 账户,创建一个单独的任务。其账户必须有权访问任务副本所需的所有代码仓库。

共享任务链接不会转移您的 GitHub 连接、凭据、代码仓库访问权限或代码仓库文件。任务指令会显示在共享链接中,因此分享前请移除敏感代码或代码仓库信息。现有的 GitHub 管理员审批和应用只读限制仍然适用。

事件触发型 GitHub 任务可以分享。符合条件的接收者必须连接自己的 GitHub 账户,并授权访问其任务所需的 github.com 代码仓库。

有关更多信息,请参阅:ChatGPT 中的计划任务。

查找缺失的 GitHub 代码仓库

代码仓库通常需要约 5 分钟才会在 ChatGPT 中显示为可用。

您可能暂时看不到某个代码仓库的其他原因包括:

  • 如果代码仓库为私有或刚刚创建,则可能要等到为正确的账户或组织安装 GitHub 应用,且该应用获得相应代码仓库的访问权限后,才会显示。打开 GitHub 应用的代码仓库设置,确认该代码仓库已被选中并获得批准。如果 GitHub 显示已连接,但没有可用的代码仓库,请先检查这些设置,再重新连接。

  • 您的 GitHub 组织可能要求管理员批准 ChatGPT 应用或特定代码仓库。检查 GitHub 应用的代码仓库设置,并通过组织显示的审批流程申请访问权限。

  • GitHub 自身的搜索索引可能需要一些时间才能收录新代码仓库。这与 ChatGPT 应用同步无关:ChatGPT 中的 GitHub 访问功能会按需检索已授权的代码仓库内容,不会创建由管理员管理的 GitHub 索引。

数据与隐私

ChatGPT 如何与 GitHub 配合使用

ChatGPT 会根据您的提示词生成搜索查询,以便在您连接的 GitHub 代码仓库中查找相关信息,并将这些查询发送给 GitHub。例如,如果您问:“能告诉我后端在哪里处理了文件上传吗?”ChatGPT 可能会使用“文件上传处理程序 后端”之类的查询来搜索您的 GitHub 代码仓库。如有需要,它可能会执行几次不同的搜索,以找到最相关的代码或文件。

了解模型训练和 GitHub 数据

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

对于符合条件的个人账户内容,是否将其用于改进模型取决于您的为所有人改进模型设置。有关已连接应用的数据使用和模型训练的信息,请参阅:ChatGPT 中的已连接应用。

ChatGPT 数据驻留仅适用于工作空间所选区域内受支持且在范围内的客户内容。发送给 GitHub 的信息还须遵守 GitHub 自身的存储、处理和数据驻留条款。有关当前适用范围,请参阅:ChatGPT 的数据驻留和推理驻留。

常见问题

GitHub 管理员如何批准 ChatGPT 应用?

如果你的组织限制 OAuth 应用访问,组织所有者可以按照 GitHub 的说明批准适用于其组织的 OAuth 应用。安装 GitHub 应用与授予其代码仓库访问权限是两个独立的步骤。

如何在代码仓库中搜索单个文件?

代码仓库选择器搜索的是代码仓库名称,而不是仓库内的文件。在支持 GitHub 连接的 ChatGPT 体验中,你可以要求 ChatGPT 使用文件名、函数名或错误消息搜索已授权的代码仓库。请提供代码仓库名称;如果知道文件路径,也请一并提供。

能否禁止 ChatGPT 应用访问特定代码仓库?

可以。代码仓库访问权限由 GitHub 控制。组织所有者可以检查已安装的 GitHub 应用,更改该应用可以访问的代码仓库。

连接到 ChatGPT 后,我能否将代码、更新或 PR 推送到 GitHub?

ChatGPT 中的 GitHub 应用只允许读取你的代码仓库,以便分析和搜索代码。要生成、编辑代码并将其直接推送到 GitHub,请使用 Codex。有关更多信息,请参阅:帮助中心的 Codex 文章。

如果我在 GitHub 上启用了 IP 允许列表,该怎么办?

如果您的 GitHub 企业或组织启用了 IP 允许列表,请将 OpenAI 的出站 IP 地址块添加到 IP 允许列表。

为什么 GitHub 可用于深度研究或智能体模式,却无法用于聊天?

GitHub 的可用性可能因 ChatGPT 套餐和产品体验而异。某些套餐可能支持在深度研究或智能体模式中使用 GitHub,但不支持在标准聊天中使用。如果您在标准聊天中看不到 GitHub,请查看您的 ChatGPT 套餐详情。

这篇文章对你有帮助吗?