# 在拉取请求的整个生命周期中使用 GitHub Copilot 代码评审

为 Copilot code review 构建一个从草稿拉取请求到合并的可重复工作流程。

## Introduction

Copilot code review 作为拉取请求工作流的一部分使用时，效果最佳。 本教程介绍如何在手动评审和自动评审之间进行选择，提前请求草稿拉取请求，以及如何在合并之前触发重新评审。

你还将了解应在何时使用自定义、技能、MCP 服务器和运行器选项，以便根据你的需求定制 Copilot 的审查。

## 完成拉取请求生命周期的全过程

选择评审模型，并为草稿和活跃拉取请求设置早期反馈。

### 为团队选择正确的评审模型

Copilot code review 可以在你自行触发时手动运行，也可以在拉取请求生命周期的一个或多个阶段自动运行。 人工审核让你可以精确控制 Copilot code review 何时介入。 自动审查可确保覆盖的一致性，你还可选择其触发时机：拉取请求开启时、草稿状态下，或每次新推送时。

| 审阅模型                        | 最适用于            | 为什么                        |
| --------------------------- | --------------- | -------------------------- |
| 人工审核请求                      | 高上下文更改或选择性使用    | 只有在你想听听其他视角时，才能调用 Copilot。 |
| 对已开启的拉取请求进行自动评审             | 需要广泛、一致的覆盖范围的团队 | 每个拉取请求都会获得基线反馈，而无需依赖个人习惯。  |
| 对草稿拉取请求的自动评审                | 希望获得更早反馈周期的团队   | 作者可以在人工评审开始之前修复问题。         |
| 对新推送进行自动评审                  | 包含多次修订的快速迭代拉取请求 |                            |
| Copilot 会随着拉取请求的演变重新评估重大更新。 |                 |                            |

有关设置步骤，请参阅 [使用 GitHub Copilot 代码审查](/zh/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review) 和 [Configuring code review by GitHub Copilot](/zh/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review)。

### 尽早在草稿拉取请求中使用 Copilot code review

借助 Copilot code review 评审草稿拉取请求，可让你在请求团队进行评审之前，及早并可靠地检查代码。

有用的草稿工作流是：

1. 以草稿形式创建拉取请求。
2. 从“Copilot code review”下的 \*\*\*\* 请求评审，或是启用对草稿拉取请求的自动评审。
3. 首先解决高置信度反馈，例如正确性、安全性和明确的可维护性问题。
4. 推送更新，并确认主要意见已得到解决。
5. 将拉取请求标记为可供人工评审。

这种方法有助于团队将更多人工评审时间投入到设计取舍和产品影响上，而不是花在那些原本可以更早发现的明显问题上。

## 优化评审质量

通过确定何时发起重新评审，以及在哪些情况下自定义、外部上下文和运行器能够发挥价值，来提升评审质量。

### 在合并之前使用重新评审

进行重大更改后，请求重新审查，以检查在解决早期反馈时是否引入了新风险。

在以下情况下申请重新审核：

* 跨服务或包边界更新多个文件。
* 更改安全敏感或数据敏感行为。
* 应用大量建议的更改并希望进行最后一轮检查。

对于频繁更新活动拉取请求的团队，启用对新推送的自动评审可以减少手动重新评审请求，同时让反馈保持最新状态。

### 让自定义适配你的工作流程

当每种文件类型支持工作流中的评审决策点时，自定义功能最有用：

* 使用 `.github/copilot-instructions.md` 表示适用于大多数拉取请求的整个存储库范围内的评审要求。
* 当代码库的不同部分采用不同标准时，请使用 `.github/instructions/**/*.instructions.md` 提供针对代理和路径的特定指导。
* 使用 `AGENTS.md` 来提供有助于提高相关性的存储库上下文，例如预设模式、体系结构边界或评审优先级。

让这些文件聚焦于评审者在拉取请求期间做出决策时需要依据的内容。 避免将它们变成完整的工程手册。

有关详细的自定义机制和示例，请参阅 [使用自定义指令来激发Copilot代码评审的强大功能](/zh/copilot/tutorials/customize-code-review)。

### 将智能体技能和 MCP 服务器用于专用评审目标

当团队需要依赖于组织特定上下文的评审时，代理技能和 MCP 服务器最有价值。

如果需要可重用评审例程，请使用代理技能，例如：

* 将标准清单应用于迁移拉取请求。
* 在单存储库中运行针对特定语言或框架的评审环节。
* 确定某些风险领域（例如授权或计费逻辑）的优先级。

当评审需要参考拉取请求本身之外的上下文时，请使用 MCP 服务器，例如：

* 将拉取请求更改关联到问题、事件或服务所有权数据。
* 从内部系统中检查预期的推出或操作上下文。
* 根据外部文档来源验证实现细节。

有关设置详细信息，请参阅 [为 GitHub Copilot 添加代理技能](/zh/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills) 和 [为存储库配置 MCP 服务器](/zh/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers)。

### 确定是否需要自托管运行器

在许多情况下，标准的 GitHub 托管运行器对于 Copilot code review 来说已经足够，并且无需进行任何设置；默认情况下，系统已为你完成配置。

当你有以下需求时，可考虑使用自托管运行器或更大的运行器：

* 为更繁重的评审工作负载提供更好的性能。
* 对组织所需的内部系统的网络访问。

需要使用运行器，因为 Copilot code review 会使用 GitHub Actions 执行代理式操作，例如更深入地收集上下文信息和调用工具。 如果 GitHub托管运行器不可用，且未正确配置任何受支持的自托管选项，评审将退回到限制更多的模式。

有关规划和设置详细信息，请参阅 [为 GitHub Copilot 代码评审配置运行器](/zh/copilot/how-tos/copilot-on-github/set-up-copilot/configure-runners)。

## 按场景推荐的工作流

| 团队方案          | 建议的工作流                                                                                                            |
| ------------- | ----------------------------------------------------------------------------------------------------------------- |
| 频繁提交拉取请求的小型团队 | 为所有拉取请求启用自动评审，评审草稿以尽早获得反馈，并在变更较大时在合并前进行手动重新评审。                                                                    |
| 具有混合堆栈的大型单存储库 | 启用自动评审并评审新的推送，为每个主要领域添加路径专属说明，并针对重复出现的评审模式使用技能。                                                                   |
| 安全敏感或受监管的代码库  | 在合并前使用草稿拉取请求评审并要求重新评审，将整个存储库范围内的安全要求保留在 `.github/copilot-instructions.md` 中，并使用 MCP 服务器处理存储在 GitHub 外部的事件或合规性上下文。 |
| 具有内部平台依赖项的团队  | 从自动评审开始，只有在为了提供有用的评审反馈而确实需要访问内部系统时，才添加自托管运行器和 MCP 上下文。                                                            |

## 后续步骤

* 有关更广泛的概念（包括评审工作量和智能体功能），请参阅“[关于GitHub Copilot 代码评审](/zh/copilot/concepts/agents/code-review)”。
* 若要优化特定存储库的自动评审质量，请参阅 [使用 Copilot 生成优化的评审过程](/zh/copilot/tutorials/optimize-code-reviews)。
* 有关排除的文件类型和其他限制，请参阅 [被排除在 GitHub Copilot code review 的文件](/zh/copilot/reference/review-excluded-files)。