开始使用 Copilot 对拉取请求进行代码审查

Azure DevOps服务

Important

此功能处于有限 预览状态

某些功能可能尚未在你的环境中提供,因为Microsoft分阶段推出预览功能。 功能可能会更改或删除,而不通知。 预览版功能没有服务级别协议(SLA)和有限的支持。

使用 GitHub Copilot 审查 Azure Repos 中的拉取请求。 Copilot充当自动审阅者,可在更改代码上发布评论和建议,以便在人工审阅者注销之前获得反馈。

若要使用该功能,Project集合管理员为组织启用该功能,Project管理员管理project级默认值,存储库所有者将替代各个存储库的设置,以及单个用户选择通过预览功能(除非管理员为每个人启用预览版)。

先决条件

类别 Requirements
组织 Azure DevOps 中的组织
存储库 Azure Repos中的 Git 存储库。 不支持 TFVC。
组织权限 Project集合管理员以在组织级别启用该功能。
Project权限 Project管理员在project级别启用该功能。
存储库权限 存储库所有者或管理员为存储库启用该功能。
账单 链接到你的 Azure DevOps 组织的 Azure 订阅。 Copilot 代码审查使用情况通过 Azure 成本管理计费。 有关详细信息,请参阅 计费

启用Copilot代码评审

在组织级别

Project集合管理员必须为组织启用Copilot代码评审,然后project所有者才能为单个项目和存储库启用它。

如果选择组织级别“启用所有”选项,则会为组织中的每个项目和这些项目中的每个存储库启用Copilot代码评审。 无需单独启用每个项目或存储库。

  1. 登录到 Azure DevOps 组织(https://dev.azure.com/{yourorganization})。

  2. 选择 组织设置>Repos>存储库

  3. 在“GitHub Copilot 代码审查”下,将“允许此组织中的存储库使用 Copilot 代码审查”切换为“开”

    显示Copilot代码评审配置的组织设置的屏幕截图。

在项目级别

启用组织级别访问后,Project管理员可以选择在project级别启用该功能。 此选项提供对组织中哪些项目可以使用Copilot代码评审进行精细控制。

如果选择项目级“启用所有”选项,则会为该项目中的每个存储库启用Copilot代码评审。 无需单独启用每个存储库。

  1. 选择 项目设置>Repos>存储库

  2. “GitHub Copilot代码评审”下,将“启用Copilot此项目的代码评审”切换为“打开”。

    此设置适用于项目中的所有存储库,除非在存储库级别重写。 仍可以根据需要启用或禁用各个存储库的功能。

在存储库级别

启用组织级访问(以及(可选)项目级访问后,存储库所有者会针对应使用它的每个存储库启用Copilot代码评审。

  1. 选择 项目设置>Repos>存储库

  2. 选择要启用的存储库。

  3. 在“设置”选项卡上,将“为此存储库中的拉取请求启用 Copilot 代码审查”切换为“开”

    存储库设置的屏幕截图,其中Copilot代码评审启用切换。

若要验证该功能是否已启用,请在存储库中打开任何拉取请求。 GitHub Copilot现在应显示为 reviewers 列表中的可用审阅者。

配置Copilot代码评审

在所有三个范围内启用该功能后,可以配置如何在存储库中Copilot评审拉取请求。

设置自动评审策略

Copilot无需手动请求即可自动查看新的拉取请求。 可以为项目中的所有存储库或单个存储库配置此策略。

功能启用和自动评审是单独的设置。 启用Copilot代码评审可将其提供给存储库。 创建新的拉取请求时,自动评审策略会请求Copilot评审。

为项目中的所有存储库配置自动审阅

使用项目级策略自动请求项目中每个存储库Copilot评审。 无需单独为每个存储库配置策略。

  1. 选择 项目设置>Repos>存储库

  2. “GitHub Copilot代码评审”下,将“自动请求”Copilot代码评审,以检查此项目中的所有存储库的新拉取请求

    此设置适用于项目中的所有存储库,除非存储库级策略重写它。

为一个存储库配置自动评审

需要特定于存储库的行为时,请使用存储库级策略。

  1. 选择 项目设置>Repos>存储库

  2. 选择要配置的存储库。

  3. “设置”选项卡上,在“GitHub Copilot代码评审”下,将“自动请求”Copilot代码评审切换到“打开”。

  4. (可选)配置评审范围:

    • 适用于所有拉取请求:Copilot评审存储库中的每个新拉取请求。
    • 适用于特定的分支策略:Copilot仅评审面向指定分支的拉取请求(例如主要或开发)。

    自动评审的策略优先级:

    • 项目级自动评审策略适用于项目中的所有存储库。
    • 存储库级别的自动评审设置将替代该存储库的项目级默认值。

启用自动评审时,Copilot在创建后立即开始查看新的拉取请求。 你仍可以通过在拉请求中选择GitHub Copilot旁的请求来手动请求其他评审。

选择代理池

Copilot代码评审使用Azure Pipelines代理池运行评审作业。 默认情况下,它使用组织中的默认Azure Pipelines池。

某些组织禁用默认Azure Pipelines池。 在该配置中,在选择受支持的备用池之前,无法运行Copilot代码评审。

如果组织配置了托管 DevOps 池,可以选择它以运行Copilot代码评审,而不是默认池。

注释

Copilot代码评审不支持自承载代理池。

  1. 选择 组织设置>Repos>存储库

  2. GitHub Copilot代码评审下,从下拉菜单中选择“计算池”。

    组织的计算池配置决定了可用的池。 如果没有可用的池,请与组织管理员联系。

  3. 选择“保存”

所选池处理组织中存储库的所有Copilot代码评审。 可以随时更改此设置。 若要对不同的项目或存储库使用不同的池,请通过 托管 DevOps 池配置池分配。

自定义Copilot的评审行为

有关使用自定义说明和代理技能定制Copilot代码评审反馈的指导,请参阅“配置Copilot代码评审说明”。

使用 Copilot 代码审查

在三个作用域都启用此功能后,你可以要求 Copilot 审查拉取请求。 以下部分介绍预期内容。

请求评审

默认情况下,GitHub Copilot 仅会在您提出请求时审查拉取请求:

  1. 创建拉取请求。
  2. Reviewers 节中,选择 GitHub Copilot 旁边的 request
  3. 等待评审完成。 评审可能需要一些时间,具体取决于存储库的大小和拉取请求中的更改数。 评审完成后,状态将更改为 “审阅已完成”。

如果Copilot识别潜在问题,它会将注释和建议直接添加到拉取请求中,供你检查和解决。

阅读Copilot的注释

  • Copilot 在拉取请求中以名为 GitHub Copilot 的普通审阅者身份提交反馈。
  • 每个注释都显示在它适用的代码行上,并尽可能包括一键可以应用的建议更改。
  • Copilot 总是留下评论审查。 它从不批准拉取请求或请求更改,因此其审查不满足必需审查者策略,也不会阻止合并。
  • Copilot 的评论类似于人工评审者的评论。 你可以回复他们、对他们做出反应、解决或隐藏它们。 Copilot不会阅读回复,也不会跟进。

新提交后重新评审

当你推送新提交时,Copilot 不会自动重新审查拉取请求。 若要在提交后重新发起评审,请在 Reviewers 列表中再次选择 GitHub Copilot 旁边的 Request

取消正在进行的评审

如果代码评审花费的时间超过预期,或者需要停止它,则可以取消评审运行。

  1. 打开Copilot当前正在审阅的拉取请求。
  2. 在“审阅者”部分的GitHub Copilot旁边,选择“取消”按钮(或选择“更多选项>取消审阅”)。
  3. 在出现提示时确认取消。

评审运行会立即停止,不会添加其他注释。 部分评审结果(包括取消之前添加的注释)保留在拉取请求中。 可以随时请求新的评审。

要求和限制

以下要求和限制在预览期间适用,可以更改。

仅当拉取请求满足以下要求时,Copilot 才会对其进行审查:

要求 价值
拉取请求状态 积极
拉取请求合并状态 无合并冲突(合并成功
存储库大小 10 GB 或更少
拉取请求更改的文件 100 个文件或更少

这些并发和速率限制同样适用:

Limit 价值
对同一拉取请求版本的重复评审 每个合并提交 1 个完成的审查
每个拉取请求并发审查数 1
每个组织并发审查数 5
每个用户并发审查数 2

Billing

每个已完成的代码评审都会消耗令牌,包括发送到模型的输入令牌、模型生成的输出令牌,以及复用现有上下文的缓存令牌。 用于每个评审的令牌将转换为名为 GitHub AI 信用额度的标准计费单位,其中 1 个信用额度等于 0.01 美元。

有关Copilot代码评审计费和成本的常见问题的解答,请参阅Copilot代码评审疑难解答

费用将计入与你的 Azure DevOps 组织关联的 Azure 订阅,并在 Azure 成本管理 中显示为单独的计量项。 每次评审的成本会因拉取请求的大小、更改的行数等因素而有所不同。 若要估算环境中的预期成本,请首先为一两个存储库启用该功能,并监视每日使用情况。

Azure 成本管理 中的 Copilot 代码评审计费现已包括 Azure DevOps 项目标签,支持按项目生成成本报告。 可以按这些项目标记筛选或对成本分析进行分组,以将使用情况归咎于单个Azure DevOps项目。

要查看您的每日费用:

  1. Azure 门户中,转到订阅。

  2. 选择“成本管理”“成本分析”。

  3. 按产品进行筛选以查看组织的每日成本。 若要查看特定项目的成本,请根据Azure DevOps项目标记添加筛选器或组。

    成本管理的屏幕截图,其中显示了按产品Copilot评审费用。

设置预算警报

创建Azure预算,在支出达到设定的阈值时通知你。 预算仅向你发送通知。 它们不会停止评审或更改任何资源。 需要在链接到Azure DevOps组织的订阅上拥有所有者参与者成本管理参与者访问权限。

  1. Azure 门户中,打开与你的 Azure DevOps 组织关联的订阅。

  2. 选择 “成本管理>预算”,然后选择“ 添加”。

  3. “筛选器”下,为“产品”添加筛选器,然后选择 AzDO 的GitHub Copilot

    “产品”设置为“GitHub Copilot”Azure DevOps的预算筛选器的屏幕截图。

  4. 如果订阅关联到多个 Azure DevOps 组织,请添加 Tag 筛选器,并选择要将警报定位到的组织名称标记。 如果存在项目标记,还可以按项目标记筛选或分组以创建项目级预算警报。

  5. 输入预算名称,选择重置期和到期日期,设置预算金额,然后选择“ 下一步”。

  6. 将一个或多个警报阈值添加为预算百分比(例如,75% 和 90%),将 类型 设置为 “实际 ”或“ 预测”,并输入要通知的电子邮件地址。

  7. 选择“创建”

    “成本管理预算”页的屏幕截图,其中选择了“添加”按钮。

当支出达到阈值时,Azure在下一次评估后的一小时内发送电子邮件。 若要查看触发的警报,请选择 “成本管理>成本警报”。 为避免提醒电子邮件进入垃圾邮件文件夹,请将 azure-noreply@microsoft.com 添加到已批准的发件人列表中。 有关详细信息,请参阅 “创建和管理预算”。

关闭 Copilot 代码审查

若要停止使用 Copilot 代码审查,请在要禁用的范围内,将开关设为 Off

  • 对于单个用户:在用户设置中关闭预览功能开关。
  • 对于一个存储库:在 Project 设置中关闭存储库切换>Repos>存储库
  • 对于整个组织:在组织设置>存储库>存储库中关闭组织切换开关。 此操作将禁用所有存储库的功能。

共享反馈

若要报告有关此预览版的问题或共享反馈,请访问 Azure DevOps 开发者社区

对代码评审Copilot进行故障排除

有关计费、数据处理、合规性和自定义说明问题的常见问题的解答,请参阅“排查Copilot代码评审”。

后续步骤