Skip to main content

关于 GitHub Copilot 的代码审查

了解 Copilot 如何执行拉取请求评审。

简介

Copilot代码审查 可审核任何语言编写的代码并提供反馈。 它会从多个角度评审代码,以识别问题并建议修复。 只需单击几下即可应用建议的更改。

此文章提供了有关 Copilot代码审查 的概述。 要了解如何向 Copilot 请求代码审核,请参阅 使用 GitHub Copilot 进行代码审查

可用性

Copilot代码审查 支持在以下资源中使用:

  • GitHub.com
  • 数据变量.product.prodname_mobile %}
  • VS Code
  • 数据 变量.product.prodname_vs %}
  • Xcode
  • JetBrains IDE

Copilot代码审查 是以下计划中提供的高级功能:

  • Copilot Pro
  • Copilot Pro+
  • Copilot业务
  • Copilot Enterprise

请参阅 Copilot 计划

如果你从组织获取 Copilot,你的组织必须在 Copilot 策略设置中启用 Copilot代码审查 选项。 这适用于 GitHub.com 或 GitHub Mobile 上的审核。 请参阅“管理组织中GitHub Copilot 的策略和功能”。

无 Copilot 许可证的 Copilot代码审查

          **没有 Copilot 许可证**的组织成员可以在 GitHub.com 上使用 Copilot代码审查。 企业管理员或组织所有者必须启用它。 此功能适用于采用 **Copilot业务** 和 **Copilot Enterprise** 计划的组织。

为没有许可证的用户启用代码审查

若要允许没有 Copilot 许可证的组织成员使用 Copilot代码审查,必须启用两个政策:

  1.        **高级请求付费使用**。 首先启用此策略。 允许企业或组织承担 Copilot代码审查 高级请求使用费用。
    
  2.        **允许无 Copilot 许可证的成员在 GitHub.com 使用 Copilot代码审查**。 该子策略为无许可证用户启用 Copilot代码审查。
    

第二个策略具有以下特征:

  • 此项默认禁用。
  • 在企业级别设置此策略后,该策略将 变为可见,但在组织级别不可编辑
  • 策略 限制最大。 Copilot代码审查 仅在你明确启用该策略的存储库中可用。

它如何适用于没有许可证的用户

当两项策略均启用时,没有 Copilot 许可证的用户可以在组织的存储库中,向 Copilot代码审查 请求对其拉取请求的审核。

在启用自动代码审查的存储库中,Copilot 会自动审查所有的 Pull Request。 无论作者是否具有Copilot许可证,都会发生这种情况。

无许可证用户的 Copilot代码审查 在 IDE 中不可用。

排除的文件

某些文件类型被排除在Copilot代码审查之外。

  • 依赖项管理文件,如 package.json 和 Gemfile.lock
  • 日志文件
  • SVG 文件

如果你在拉取请求中包含这些文件类型,Copilot代码审查 将不会审核该文件。

有关详细信息,请参阅“从 GitHub Copilot代码审核 中排除的文件”。

Copilot代码评审中的工具

注意

  • GitHub 预发行许可条款 适用于使用预览功能的行为。
  • Copilot代码审查 具有 公共预览版 中的多个新工具,并可能会更改。

Copilot代码审查 利用完整项目上下文收集,提供更具体、准确且具有上下文感知能力的代码评审。 此功能分析整个存储库,以更好地了解代码更改的上下文。 完整项目上下文收集已正式发布,并为 Copilot Pro 或 Copilot Pro+ 计划自动启用。

Copilot代码审查 包含处于 公共预览版 阶段的其他新工具:

  •         **支持静态分析工具,例如 CodeQL、ESLint 和 PMD**。 这能够提供更多高质量、一致的发现,以增强安全性和质量。
    
  •         **向 Copilot编程助理 传递建议的功能**。 这会自动在你的分支上创建一个新的拉取请求,并应用建议的修复。
    

这些工具也会为 Copilot Pro 或 Copilot Pro+ 计划自动启用。

如果你从组织获取 Copilot 订阅,只有当你的组织或企业所有者启用了预览功能时,你才能在 GitHub 网站上参与 公共预览版。 请参阅 管理组织中GitHub Copilot 的策略和功能管理企业中 GitHub Copilot 的策略和功能

使用 Copilot代码评审中的工具 无需在你的组织或企业中启用 code scanning 和 GitHub Actions。

如果 GitHub Actions 不可用,或 Copilot代码审查 使用的 Actions 工作流失败,仍会生成审核结果。 但是,这些审核结果不会包含 Copilot代码评审中的工具 提供的额外功能。

注意

公共预览版 包含新 Copilot代码评审中的工具 的免费操作分钟数。

代码评审工具对 GitHub Actions 运行器的使用

Copilot代码审查 利用 GitHub Actions 运行 Copilot代码评审中的工具,涵盖完整的项目上下文收集,并包括 数据变量.release-phases.public_preview %} 中的附加工具。 默认情况下,Copilot代码审查 使用 GitHub 托管的运行程序。

如果你的组织已禁用 GitHub托管运行器,那么新的 Copilot代码评审中的工具 将无法使用。 在这种情况下,代码评审将退化到更有限的评审。

处于此情况的组织可以使用自托管运行器。 有关详细信息,请参阅“为 GitHub Copilot 代码评审配置自托管运行器”。

代码评审每月配额

每次 Copilot 审核拉取请求或 IDE 中的代码时,你的 Copilot 高级请求月度配额将减少 1 次。

如果存储库配置为对所有新拉取请求自动向 Copilot 请求代码审核,高级请求的使用将计入拉取请求作者的配额。

如果拉取请求由 GitHub Actions 或机器人创建,使用量将计入:

  • 触发工作流的用户(如果可以识别该用户)。
  • 指定的计费所有者。

达到配额时会发生什么情况

当月度配额用尽时,你将无法获取 Copilot 的代码审核,直到配额重置。 要在配额重置前继续使用代码审核功能,你需要升级 Copilot 计划或启用额外的高级请求。

无 Copilot 许可证用户的配额

无许可证用户没有每月高级请求配额。 当为这些用户启用 Copilot代码审查 时,他们生成的任何高级请求都将作为超额付费使用直接向组织或企业计费。 这适用于手动请求的评审和自动代码评审。

无许可证用户生成的高级请求不计入任何 Copilot 计划配额。 在计费报告和优质请求分析中,它们显示为超额使用。 持有 Copilot 许可证的用户继续从其分配的计划配额中消耗高级请求。

模型使用

Copilot代码审查 是一款专门构建的产品,它使用模型、提示和系统行为的精心优化组合,在各种代码库中提供一致的高质量反馈。 模型切换不受支持,因为更改模型可能会损害可靠性、用户体验和评审评论的质量。

注意

Copilot代码审查 可能使用组织的“Models”设置页上未启用的模型。 “模型”设置页仅可控制 Copilot对话。

由于 Copilot代码审查 已正式发布,因此所有模型使用情况都将受到正式版条款的约束。 请参阅“管理组织中GitHub Copilot 的策略和功能”。

验证 Copilot 代码评审

Copilot 不能保证发现拉取请求中的所有问题。 有时它会犯错误。 请始终仔细审查 Copilot 的反馈。 请结合人工审核补充 Copilot 的反馈。

有关详细信息,请参阅 负责任地使用 GitHub Copilot 进行代码审查

增强 Copilot 对仓库的了解

Copilot 对仓库中的代码、使用的工具以及编码标准和实践了解得越多,其审查结果就越准确、越有用。 可以通过两种方式增强 Copilot 对存储库的了解。

自定义说明

这些是你编写并存储在一个或多个存储库文件中的简短自然语言语句。 如果你是 GitHub 上的组织的所有者,还可以在组织的设置中定义自定义说明。 有关详细信息,请参阅“关于自定义GitHub Copilot 响应”。

Copilot内存 (公共预览版)

如果你有 Copilot Pro 或 Copilot Pro+ 套餐,则可以启用 Copilot内存。 这允许 Copilot 存储其了解到的有关存储库的有用细节。 之后,Copilot 在审核该存储库中的拉取请求时可以使用这些信息。 有关详细信息,请参阅“关于GitHub Copilot的自主记忆”。

关于自动拉取请求评审

默认情况下,只有当你将拉取请求分配给 Copilot 时,它才会审核该拉取请求。 但是,可以配置自动评审。

  •           采用 Copilot Pro 或 Copilot Pro+ 计划的**个人用户**可以配置 Copilot,使其自动审核他们创建的所有拉取请求。
    
  •           **存储库所有者**可以配置 Copilot,使其自动审核存储库中所有可访问 Copilot 的用户创建的拉取请求。
    
  •         **组织所有者**可以配置 Copilot,使其自动审核组织中部分或所有存储库中由 Copilot 用户创建的所有拉取请求。
    

触发自动拉取请求评审

自动代码评审的触发器取决于配置设置。

  • 基本设置:
    • 当你创建“公开”状态的拉取请求时。
    • 首次将“草稿”状态的拉取请求切换为“公开”状态时。
  • 评审新推送:
    • 每次向拉取请求推送新提交时。
  • 审查拉取请求草稿:
    • 拉取请求仍处于草稿状态时(切换为“公开”状态之前)会自动进行审核。

有关完整说明,请参阅 通过 GitHub Copilot 配置自动代码评审

注意

除非 Copilot 已配置为审核对拉取请求的每次推送,否则它只会审核该拉取请求一次。 如果在拉取请求自动审核后你对其进行了更改,并且希望 Copilot 重新审核,可以手动请求。 在“审阅者”**** 菜单中,单击 Copilot 名称旁边的 按钮。

获取整个存储库的详细代码质量反馈

GitHub Copilot代码审核 会对拉取请求中的代码进行审查并提供反馈。 如果你希望获得有关整个存储库可靠性和可维护性的可操作反馈,请启用 GitHub Code Quality。 请参阅“关于GitHub代码质量”。

其他阅读材料

  •         [AUTOTITLE](/copilot/how-tos/agents/copilot-code-review/using-copilot-code-review)