Introduction
Copilot code review 审核用任意语言编写的代码,并提供反馈。 它会从多个角度评审代码,以识别问题并建议修复。 只需单击几下即可应用建议的更改。
本文概述了 Copilot code review. 若要了解如何从 Copilot中请求代码评审,请参阅 使用 GitHub Copilot 进行代码审查。
Availability
Copilot code review 支持以下环境:
- GitHub.com
- GitHub CLI
- GitHub Mobile
- VS Code
- Visual Studio
- Xcode
- JetBrains IDE系列
- Azure DevOps (公开预览)
注意
如果从组织收到Copilot,则您的组织必须在Copilot code review的策略设置中启用Copilot选项。 这适用于在 GitHub.com 或在 GitHub Mobile 上的评论。 请参阅“管理组织中GitHub Copilot的策略和功能”。
Copilot code reviewCopilot没有许可证
没有许可证的组织Copilot 成员可以使用 Copilot code reviewGitHub.com。 企业管理员或组织所有者必须启用它。 此功能适用于Copilot Business 和Copilot Enterprise 计划的组织。
为没有许可证的用户启用代码审查
若要允许没有 Copilot 许可证的组织成员使用 Copilot code review,必须启用两个策略:
- ** AI credits 付费使用情况**。 首先启用此策略。 这样企业或组织即可因使用 Copilot code reviewAI credits 而产生费用。
- 允许没有 Copilot 许可证的成员在 Copilot code review 中使用 GitHub.com。 此子策略为没有许可证的用户启用 Copilot code review 。
第二个策略具有以下特征:
- 此项默认禁用。
- 在企业级别设置此策略后,该策略将 变为可见,但在组织级别不可编辑 。
- 策略 限制最大。 Copilot code review 仅在已显式启用策略的组织下的存储库中可用。
它如何适用于没有许可证的用户
启用这两个 Copilot 策略后,没有许可证的用户可以在组织的存储库中请求由 Copilot code review 对他们的拉取请求进行评审。
在启用自动代码评审的存储库中, Copilot 自动评审所有拉取请求。 无论作者是否具有 Copilot 许可证,都会发生这种情况。 有关如何配置自动代码评审的详细信息,请参阅 通过GitHub Copilot配置代码评审。
Copilot code review 对于没有许可证的用户,在 IDE 中不可用。
的代理功能 Copilot code review
Copilot code review 利用代理功能来扩展其功能。
- 项目背景信息的完整收集。 这使代码评审更加具体、准确,并具有上下文意识。 此功能分析整个存储库,以更好地了解代码更改的上下文。
- 向Copilot cloud agent传递建议的能力。 这会自动在你的分支上创建一个新的拉取请求,并应用建议的修复。 将建议传递给 Copilot cloud agent 的功能处于公共预览阶段,可能会有变动。
所有包含 Copilot code review 的套餐均会自动启用这些功能。 有关在 Lite、Balanced 和 Max 分析级别之间进行选择的信息,请参阅本文后面的 “审阅工作量级别”。
如果 GitHub Actions 不可用,或者 Copilot code review 所使用的 Actions 工作流失败,评审依然会被生成。 但是,它们不包括代理功能提供的其他功能。
GitHub Actions代码评审中的代理能力运行器使用情况
Copilot code review使用GitHub Actions来运行智能体能力,包括收集完整的项目上下文并将建议传递给Copilot cloud agent。 默认情况下, Copilot code review 使用标准 GitHub托管运行程序。 还可以升级到较大的 GitHub托管运行器以提高性能,或使用自托管运行器。
注意
使用较大的 GitHub托管运行程序按每分钟更高的费率计费。 自托管运行器不消耗 GitHub Actions 分钟。
GitHub Actions无需在组织或企业中启用代理功能,才能在代码评审中使用代理功能。
如果您的组织禁用了托管 GitHub 运行程序,则代理功能将不可用。 在这种情况下,代码评审将退化到更有限的评审。 在这种情况下,组织可以使用自托管运行器。
有关配置运行程序的详细信息,请参阅 为 GitHub Copilot 代码评审配置运行器。
可以查看 GitHub Actions 与 Copilot code review 运行关联的分钟数。 有关更多信息,请参阅代码审查记录。
估计消耗量
下表显示了每个评审工作级别的单个评审的估计 AI credits 消耗量。
| 查看工作级别 | 每次审阅的典型范围 | 每条评价的平均值(约) |
|---|---|---|
| 轻量版 | $0.05 USD to $1 USD | $0.25 USD |
| Balanced | $0.25 USD to $5 USD | $1.50 USD |
| 最大值 | $1.50 USD to $25 USD | $10 USD |
这些数字只是估计值。 消耗通常会随着拉取请求大小和存储库自定义说明而增加。 实际成本可能超出这些范围,并且随着模型的发展而变化。 估计不包括 GitHub Actions 分钟。
存储库和组织管理员可以为自动代码评审设置默认评审工作级别。 有关配置步骤,请参阅 通过GitHub Copilot配置代码评审。
代码评审使用情况和计费
每次 Copilot 审查拉取请求或在您的 IDE 中审查代码时,此交互都会消耗 AI credits。 金额取决于所使用的模型和处理的令牌数。
代码评审有两个成本组件: AI credits 模型交互(评审本身),以及 GitHub Actions 代理功能(上下文收集和工具使用)的分钟数。 有关 GitHub Actions 用法的更多信息,请参阅在代码评审中将 GitHub Actions 运行器用于代理式能力。
默认情况下,当存储库自动请求代码评审时, AI credits 消耗将归因于拉取请求作者。 如果其他用户手动请求评审,则消耗将改为归因于该用户。
对于由 Copilot cloud agent 创建的拉取请求,使用量会优先归属于与该更改关联的人类共同作者。 如果无法向共同作者计费,则使用情况将直接计费给组织。
对于由其他机器人创建的拉取请求,或者由机器人发起评审请求时,相关用量将直接计入该组织账单。 这些拉取请求可进行智能体评审。
对于与具有付费 Copilot 许可证的组织成员关联的请求,默认按该成员的授权计费。 企业或组织所有者可以选择向组织计费。 向组织计费需要 AI credits 付费使用,但预算是可选的。 此选项适用于手动请求的代码评审和自动代码评审,并且仅影响计费。 它本身不授予访问权限 Copilot code review。
请求使用外部 Copilot 许可证的评审
外部 Copilot 许可证是指不是由拥有存储库的组织或企业提供的许可证,例如个人许可证或来自另一个组织的许可证。 默认情况下,人们可以使用外部许可证向Copilot请求评审。
为防止这种情况,组织所有者和存储库管理员可以为组织或单个存储库启用仅允许由授权用户触发 Copilot code review 设置。 启用该设置时:
- Copilot 不作为审阅者提供给未获授权的人员,并且来自这些人的 API 评审请求不会启动评审。
- 在个人存储库中,只有存储库所有者或直接协作者才能请求评审。
- 个人设置中的自动评审不会针对未获授权的人员运行。 由存储库或组织规则集配置的自动审查仍会运行。
有关配置步骤,请参阅 通过GitHub Copilot配置代码评审。
没有包含 Copilot 的 Copilot code review 许可证或计划的用户
无权使用 Copilot code review 的用户不享有其 AI credits 的每月额度。 这包括没有Copilot许可证的用户以及选用Copilot Free计划但该计划不包含Copilot code review的用户。
为这些用户启用 Copilot code review 后,他们使用的任何 AI credits 都将作为付费额外用量,直接向组织或企业计费。 这适用于手动请求的评审和自动代码评审。
AI credits 这些用户消耗的资源不会计入任何单个用户的预算。 它们在计费报告中显示为其他使用情况。
达到预算时会发生什么情况
对于 Copilot Business 和 Copilot Enterprise,代码评审访问权限受适用于所选计费源的预算的约束。 如果用户按使用情况计费,则当用户达到其预算上限时,将阻止代码评审。 如果将使用情况计费给组织,则当适用的组织预算、成本中心预算或企业支出限制用尽时,将阻止代码评审。 代码评审与其他消耗AI credits的功能一起被阻止。 请参阅“基于使用情况的计费预算”。
模型应用
Copilot code review 是一款专门构建的产品,它使用模型、提示和系统行为的精心优化组合,在各种代码库中提供一致的高质量反馈。 模型切换不受支持,因为更改模型可能会损害可靠性、用户体验和评审评论的质量。
注意
Copilot code review 可能使用组织的“Models”设置页上未启用的模型。 “模型”设置页仅可控制 Copilot Chat。
由于 Copilot code review 已正式发布,因此所有模型使用情况都将受到正式版条款的约束。 请参阅“管理组织中GitHub Copilot的策略和功能”。
自动拉取请求审查
默认情况下,只有在将拉取请求分配给Copilot时,Copilot才会审核拉取请求。 但是,可以配置自动评审。
- 用户可以将 Copilot 配置为自动审查他们创建的拉取请求。 此功能适用于 Copilot Pro、Copilot Pro+ 和 Copilot Max 套餐,并且适用于 Copilot Business 或 Copilot Enterprise 许可证。 它不适用于 托管用户帐户。
- 存储库所有者 可配置 Copilot 为自动查看存储库中有权访问 Copilot的人员创建的所有拉取请求。
- 组织所有者 可配置 Copilot 为自动查看用户在其中创建 Copilot 拉取请求的组织中部分或所有存储库中的所有拉取请求。
Copilot 根据两套独立的配置对拉取请求进行评估:用户设置和任何适用的规则集。 这些配置不是分层的;既不继承也不替代另一个。 当至少启用了一个配置时,拉取请求会自动接受审核。 如果在拉取请求上启用了这两种配置, Copilot 则仍只发布一次评审。
如果组织启用了 Copilot code review,即使没有 Copilot 许可证,自动审核也适用于由没有许可证的组织成员创建的拉取请求。 这适用于启用了自动评审的策略涵盖的存储库。 有关详细信息,请参阅Copilot code review无 Copilot 许可证。
触发自动拉取请求评审
自动代码评审的触发器取决于配置设置。
- 基本设置:
- 当您创建一个状态为“打开”的拉取请求时。
- 首次将“草稿”状态的拉取请求切换为“公开”状态时。
- 查看新推送:
- 每次将新提交推送到拉取请求时。
- 审查拉取请求草稿:
- 拉取请求仍处于草稿状态时(切换为“公开”状态之前)会自动进行审核。
当拉取请求符合自动审查条件时,审查新的推送和审查拉取请求草稿是否适用,取决于作者的设置或适用的规则集是否启用了这些选项。 你无法通过自己的设置关闭规则集已启用的推送或草稿评审。
有关完整说明,请参阅 通过GitHub Copilot配置代码评审。
注意
除非 Copilot 已配置为审核推送到拉取请求的每个推送,否则它只会对拉取请求进行一次评审。 如果在自动审阅拉取请求后进行了更改,并且希望 Copilot 重新评审,那么可以手动提出请求。 单击按钮,该按钮位于“审阅者”菜单中Copilot的名称旁边。
查看工作级别
Copilot code review 支持多种 Copilot 评审投入级别,因此您可以根据代码的重要性选择相应的评审细致程度。
- Lite:标准审核。 提供有关常见问题(如 bug、安全漏洞和样式不一致)的快速有针对性的反馈。
- 均衡(默认):将拉取请求路由到具有更强推理能力的模型,以便对复杂逻辑、安全敏感代码和跨服务更改进行更长时间的分析。 平衡的评论使用更多 AI credits,并且可能消耗的分钟数略高于 GitHub Actions Lite 评论。
- Max:最高工作量审核。 使用多个高推理模型对需要最严格审查的拉取请求进行最密集的评审。
注意
最大评审工作量级别当前为 公开预览,且可能会更改。
将 Max 用于需要最彻底的评审的高风险或发布关键拉取请求。 对安全敏感代码、多服务拉取请求或存储库使用“平衡”,采用严格的质量标准。 对于快速反馈比全面分析更重要的例行更改,请使用 Lite。
更高的努力程度消耗更多 AI credits。 平均而言,使用 Lite 时,每次审核的预估成本为 $0.25 USD;使用 Balanced 时为 $1.50 USD;使用 Max 时为 $10 USD。 有关典型范围,请参阅 预计消耗量。
在拉取请求中请求评审时,可以在“审阅者”部分下选择Copilot审阅工作,其中显示为Copilot审阅者。 您还可以在Copilot设置中设置默认的Copilot code review审查工作量。 组织所有者可以为其组织中的自动代码审查设置默认的 Copilot 审查工作量。 存储库管理员可以替代特定存储库的组织默认值。
当 Copilot 确定使用哪个评审工作量时,它会按顺序检查以下选项,并使用第一个适用的选项:
- Copilot 在请求评审时选择的评审工作量
- Copilot此前用于此拉取请求的审查工作量
- 请求者的 Copilot 评审工作量。 对于新的拉取请求,请求者是作者。 当某人标记准备审阅的草稿时,该人是请求者。
- Copilot存储库的评审工作集
- Copilot为组织设置的评审工作,或存储库所有者Copilot对用户拥有的存储库的评审工作
- GitHub的内置默认值,即“平衡”。
在 Copilot code review 评审拉取请求后,拉取请求概览评论会显示每次评审运行所使用的工作量级别。
有关配置步骤,请参阅 通过GitHub Copilot配置代码评审。
Copilot 审批
每个 Copilot code review 都包含概览评论中的批准评估,用于表明 Copilot 在完成审阅后是否已认定该拉取请求可以批准。 默认情况下,Copilot 的审查不会计入拉取请求所需的批准数。
在存储库、组织和企业设置中启用 Copilot 审批后,Copilot 可以提交一项批准性审查,其作用与队友的批准相同,并满足存储库的必需审批规则。 如果在 Copilot 批准后推送了新的提交,该批准将失效,你可以重新请求评审。
用于代码评审的 MCP 服务器和代理技能
Copilot code review 可以在与评审相关时使用仓库级代理技能和 MCP 服务器。
Copilot code review 当存储库或拉取请求提供明确的信号时,更有可能使用技能和 MCP 上下文,包括以评审为中心的技能目录名称、引用 MCP 上下文的自定义说明,以及包含引用配置的 MCP 服务器的标识符(例如问题密钥或事件 ID)的拉取请求说明。
代理技能
如果存储库包含代理技能, Copilot code review 则可以在查看拉取请求时自动使用相关技能,这超出了 Copilot 其内置分析的范围。
审查拉取请求时,Copilot 会从头部分支(包含更改的分支)而不是基础分支读取存储库自定义说明、智能体说明和智能体技能。 例如,在将 my-feature-branch 合并到 main 时,Copilot 会使用 my-feature-branch 中的说明和技能,因此您可以在同一个拉取请求中测试对它们的更改,而无需先将它们合并。
有关设置详细信息,请参阅 为 GitHub Copilot 添加代理技能。
MCP 服务器
Copilot code review 可以使用 MCP 服务器直接从团队使用的第三方平台和内部系统的评审中提取上下文,包括问题跟踪、文档、服务目录和事件工具。
GitHub MCP 服务器和 Playwright MCP 服务器默认处于启用状态。
可以在存储库设置中配置 MCP 服务器。 GitHub 上的仓库 MCP 配置同时适用于 Copilot cloud agent 和 Copilot code review。 对存储库 MCP 设置所做的更改会影响这两项功能。 有关设置详细信息,请参阅 为存储库配置 MCP 服务器。
在存储库设置中,允许 Copilot 在审查拉取请求时使用 MCP 工具默认处于启用状态。 如果您希望 MCP 服务器仅对 Copilot cloud agent 可用,而不对 Copilot code review 可用,请禁用此设置。 有关分步说明,请参阅 为存储库配置 MCP 服务器。
排除的文件
以下文件类型被排除在Copilot code review之外:
- 依赖项管理文件,如 package.json 和 Gemfile.lock
- 日志文件
- SVG 文件
如果在拉取请求中包含这些文件类型, Copilot code review 则不会查看该文件。
有关详细信息,请参阅“被排除在 GitHub Copilot code review 的文件”。
增强 Copilot 对存储库的知识
对存储库中的代码、你使用的工具以及编码标准和做法的了解越多 Copilot ,其评审就越准确且有用。 可以通过两种方式增强 Copilot 对您存储库的了解。
自定义说明
这些是你编写并存储在一个或多个存储库文件中的简短自然语言语句。 如果你是组织的 GitHub所有者,还可以在组织的设置中定义自定义说明。 有关详细信息,请参阅“GitHub Copilot的自定义说明”。
在自定义说明、AGENTS.md 和技能之间进行选择
Copilot code review 可以利用多个自定义来源,并且每种来源都有不同的用途。 对于存储库范围内的特定于 .github/copilot-instructions.md 的规则,请使用 Copilot;对于仅适用于特定文件或目录的规则,请使用 *.instructions.md 下路径特定的 .github/instructions/ 文件;对于你希望在 AI 工具和智能体之间共享的长期规则,请使用 AGENTS.md;对于由 Copilot 按需运行的任务特定工作流,请使用技能。 下表总结了何时使用每个规则以及如何提供规则。
| Use | copilot-instructions.md | 路径特定 *.instructions.md | AGENTS.md | 技能 |
|---|---|---|---|---|
| 最适用于 | 整个存储库的始终启用规则 Copilot | 针对特定路径、文件类型或目录的始终开启规则 | 跨 AI 代理共享的 Always-on 规则 | 特定任务评审工作流 |
| 存储在 | .github/ | .github/ | 存储库根目录 (AGENTS.md) | .github/ |
| 例子 | 编码标准、体系结构默认值、测试预期 | |||
content/** 编写规则、 src/** 编码约定、特定于语言的指南 | 应适用于 Copilot 之外的共享仓库约定 | 评审、发布、迁移、分析 | ||
| 激活 | 自动 | 当更改的文件与指令范围匹配时自动 | 自动(从存储库根目录读取) | 在适用时自动进行(例如对于以评审为重点的技能,如 code-review),或按需进行 |
| Scope | 整个存储库范围和 Copilot 特定的 | 存储库子路径和 Copilot 特定的 | 跨工具 / 与代理无关 | 按任务调用 |
| 规则 | “Copilot,始终知道此存储库的这一点” | “Copilot在使用这些路径时,请始终知道这一点” | “任何代理,始终知道这一点” | “在需要时执行此操作” |
有关详细信息,请参阅 为 GitHub Copilot 添加代理技能 和 为GitHub Copilot添加存储库自定义说明。
Copilot Memory
当存储库设置和适用的策略允许时, Copilot 可以存储有关存储库的有用详细信息,并在查看拉取请求时使用它们。 Copilot code review 使用仓库级事实,而不是用户级首选项。 有关默认值和设置,请参阅 关于GitHub Copilot内存。
在整个存储库中获取详细的代码质量反馈
GitHub Copilot code review 查看拉取请求中的更改并建议修复。 若要在拉取请求中以及在默认分支上,为代码的可靠性和可维护性提供系统性反馈,请启用 GitHub Code Quality。
GitHub Code Quality通过添加以下内容对Copilot code review进行了补充:
- 对拉取请求和你的默认分支进行基于规则 CodeQL驱动的分析
- 在拉取请求中显示测试覆盖率指标,以便你查看某项更改是否保持了覆盖率不变,还是降低了覆盖率。
- 一键式、由Copilot驱动的修复,包括将修复工作委派给Copilot cloud agent。
- 可选合并限制带有规则集,因此可以阻止合并具有未解决的基于规则的调查结果(或未达到覆盖范围阈值)的拉取请求。
有关详细信息,请参阅“GitHub 代码质量”。
验证 Copilot 代码评审
Copilot 不能保证在拉取请求中发现所有问题。 有时它会犯错误。 请仔细验证 Copilot反馈。 使用人工评审补充 GitHub Actions 的反馈。
有关详细信息,请参阅“应用卡片:GitHub Copilot 智能体”。