简介
Copilot 代码审查支持对任何语言编写的代码进行审查并提供反馈。它从多个角度审查您的代码,以发现问题并给出修复建议。您只需点击几下即可应用建议的更改。
本文概述了 Copilot 代码审查。要了解如何请求 Copilot 进行代码审查,请参阅 使用 GitHub Copilot 代码审查。
可用性
Copilot 代码审查已在以下环境中支持
- GitHub.com
- GitHub Mobile
- VS Code
- Visual Studio
- Xcode
- JetBrains IDE
Copilot 代码审查是付费高级功能,可在以下计划中使用
- Copilot 专业版
- Copilot Pro+
- Copilot Business
- Copilot 企业版
参见 Copilot 计划。
如果您通过组织获取 Copilot,组织必须在 Copilot 策略设置中启用Copilot 代码审查选项。这适用于 GitHub.com 和 GitHub Mobile 上的审查。请参阅 在组织中管理 GitHub Copilot 的策略和功能。
未持有 Copilot 许可证的代码审查
组织成员未持有 Copilot 许可证仍可在 GitHub.com 上使用 Copilot 代码审查。需要企业管理员或组织所有者启用此功能。此能力适用于使用Copilot Business和Copilot Enterprise计划的组织。
为未持有许可证的用户启用代码审查
要让组织中未持有 Copilot 许可证的成员使用 Copilot 代码审查,必须启用两个策略:
- 付费高级请求使用。先启用此策略,它允许企业或组织因 Copilot 代码审查的高级请求而产生费用。
- 允许未持有 Copilot 许可证的成员在 GitHub.com 上使用 Copilot 代码审查。此子策略为未持有许可证的用户启用代码审查功能。
第二个策略具有以下特性:
- 默认情况下已禁用。
- 在企业层面设置后,组织层面只能查看而无法编辑。
- 该策略最为严格。只有在显式启用策略的仓库中才提供 Copilot 代码审查。
未持有许可证的用户如何使用
当两个策略均已启用时,未持有 Copilot 许可证的用户可以在组织仓库的拉取请求上请求 Copilot 代码审查。
在启用了自动代码审查的仓库中,Copilot 会自动审查所有拉取请求,无论作者是否拥有 Copilot 许可证。
未持有许可证的用户在 IDE 中无法使用 Copilot 代码审查。
排除的文件
某些文件类型会被排除在 Copilot 代码审查之外
- 依赖管理文件,例如 package.json、Gemfile.lock 等
- 日志文件
- SVG 文件
如果在拉取请求中包含这些文件类型,Copilot 代码审查将不会审查它们。
更多信息请参阅 GitHub Copilot 代码审查排除的文件。
Copilot 代码审查的代理能力
注意
- Copilot 代码审查拥有处于公开预览阶段且可能变化的功能。使用预览功能时适用 GitHub 预发布许可证条款。
Copilot 代码审查利用代理能力来扩展其功能。
- 完整项目上下文收集。该功能提供更具体、准确且具上下文感知的代码审查。它会分析整个仓库,以更好地了解代码更改的上下文。完整项目上下文收集已普遍可用。
- 将建议传递给 Copilot 云代理的能力。此功能会自动为您的分支创建一个新的拉取请求,并应用建议的修复。将建议传递给云代理目前处于公开预览阶段,可能会改变。
这些能力会在 Copilot Pro 或 Copilot Pro+ 计划中自动启用。
如果 GitHub Actions 不可用或 Copilot 代码审查使用的 Actions 工作流失败,仍会生成审查,但不会包含代理能力提供的附加功能。
代码审查中使用 GitHub Actions 运行程式的代理能力
Copilot 代码审查使用 GitHub Actions 的免费分钟数来运行代理能力,包括完整项目上下文收集以及任何公开预览的功能。默认情况下,Copilot 代码审查使用 GitHub 托管的 runner。您也可以升级到更大的 GitHub 托管 runner 以获得更佳性能。
注意
使用更大的 GitHub 托管 runner 会按分钟计费,可能产生额外的 GitHub Actions 费用。
使用代码审查的代理能力无需在组织或企业中启用 GitHub Actions。
如果您的组织已禁用 GitHub 托管的 runner,则代理能力将不可用,审查将退回到功能更受限的模式。此类组织可以使用自托管 runner。
有关配置 runner 的更多信息,请参阅 为 GitHub Copilot 代码审查配置 runner。
代码审查每月配额
每当 Copilot 审查一次拉取请求或在 IDE 中审查代码,您的 Copilot 高级请求每月配额就会减少一次。
如果仓库配置为对所有新拉取请求自动请求 Copilot 代码审查,则该高级请求计入拉取请求作者的配额。若由其他用户手动请求审查,则计入该用户的配额。
如果拉取请求是由 GitHub Actions 或机器人创建的,则使用量将归于:
- 触发工作流的用户(如果能够识别该用户)。
- 指定的计费所有者。
当配额用尽会怎样
当您达到每月配额后,直到配额重置之前将无法再获得 Copilot 的代码审查。若想在配额重置前继续使用审查,需要升级 Copilot 计划或启用额外的高级请求。
未持有包含代码审查的 Copilot 许可证或计划的用户
未获得 Copilot 代码审查权限的用户没有每月高级请求配额。这包括没有 Copilot 许可证的用户以及使用 Copilot Free 计划的用户(该计划不包含代码审查)。
当为这些用户启用 Copilot 代码审查时,他们产生的任何高级请求都将直接计入组织或企业的付费超额使用。此规则适用于手动请求的审查和自动代码审查。
这些用户产生的高级请求不会计入任何 Copilot 计划配额,而是显示为计费报告和高级请求分析中的超额使用。拥有包含代码审查的 Copilot 许可证的用户仍会从其所分配的计划配额中消耗高级请求。
模型使用
Copilot 代码审查是一款专为代码审查构建的产品,使用精心调校的模型、提示词和系统行为组合,以在各种代码库中提供一致、高质量的反馈。系统不支持模型切换,因为更换模型可能会影响可靠性、用户体验以及审查评论的质量。
注意
Copilot 代码审查可能会使用未在组织“模型”设置页面上启用的模型。“模型”设置页面仅控制 Copilot Chat。
由于 Copilot 代码审查已正式发布,所有模型使用均受通用条款约束。请参阅 在组织中管理 GitHub Copilot 的策略和功能。
验证 Copilot 代码审查
Copilot 并不能保证捕捉拉取请求中的所有问题或缺陷。有时它也会出错。请务必仔细验证 Copilot 的反馈,并辅以人工审查。
更多信息请参阅 负责任地使用 GitHub Copilot 代码审查。
增强 Copilot 对仓库的了解
Copilot 对您仓库的代码、使用的工具以及编码规范和实践了解得越多,其审查就越精准、越有价值。您可以通过两种方式提升 Copilot 对仓库的认知。
自定义指令
这些是您编写并存放在仓库中的简短自然语言说明。如果您是 GitHub 组织的所有者,还可以在组织设置中定义自定义指令。详情请参阅 自定义 GitHub Copilot 响应。
Copilot 记忆(公开预览)
如果您拥有 Copilot Pro 或 Copilot Pro+ 计划,可启用 Copilot 记忆。这样,Copilot 能够存储它从仓库中学到的有用细节,并在审查该仓库的拉取请求时使用这些信息。更多信息请参阅 关于 GitHub Copilot 代理记忆。
关于自动拉取请求审查
默认情况下,Copilot 仅在您把它指派到拉取请求时才会审查。但您可以配置自动审查。
- 个人用户(使用 Copilot Pro 或 Copilot Pro+ 计划)可以配置 Copilot 自动审查他们创建的所有拉取请求。
- 仓库所有者可以配置 Copilot 自动审查仓库中所有由拥有 Copilot 权限的人员创建的拉取请求。
- 组织所有者可以配置 Copilot 自动审查组织中某些或全部仓库内,由 Copilot 用户创建的所有拉取请求。
触发自动拉取请求审查
自动代码审查的触发条件取决于配置设置。
- 基本设置
- 当您创建一个“打开”状态的拉取请求时。
- 首次将“草稿”拉取请求切换为“打开”时。
- 审查新推送
- 每次向拉取请求推送新提交时。
- 审查草稿拉取请求
- 在拉取请求仍为草稿、尚未切换为“打开”之前,系统会自动审查。
完整操作说明请参阅 配置 GitHub Copilot 自动代码审查。
注意
除非 Copilot 已配置为审查每一次推送,否则它只会审查一次拉取请求。如果在自动审查后您对拉取请求做了更改并希望 Copilot 再次审查,可手动请求。点击在 审阅者 菜单中 Copilot 名称旁的按钮。
获取针对整个仓库的详细代码质量反馈
GitHub Copilot 代码审查会对拉取请求中的代码进行审查并提供反馈。如需对整个仓库的可靠性和可维护性获得可操作的反馈,请启用 GitHub 代码质量。参阅 关于 GitHub 代码质量。