---
title: "代码审查工作流"
description: "用 GitHub Copilot 做 review 预筛、建议修复和风险归纳，同时保留人工 reviewer 的最终责任。"
verifiedAt: "2026-05-06"
---

Copilot code review 的正确位置是**预筛风险和补充 reviewer 视角**。它可以给出评论（comments）和建议改动（suggested changes），但不能替代代码 owner 对行为、安全和发布风险的判断。

> [!WARNING]
> GitHub 官方页面提示：从 2026-06-01 开始，Copilot code review runs 会消耗 GitHub Actions minutes。团队启用自动 review 前必须确认计费和用量边界。

## 1. 入口地图

GitHub 官方文档列出多个入口：GitHub.com、VS Code、JetBrains IDEs、Visual Studio、GitHub CLI、Xcode 和 Mobile。实际团队里先统一 2 个入口即可：PR 页面 review 和本地未提交变更 review。

```mermaid
flowchart TD
    Diff["本地 diff / Pull Request"] --> Entry{"选择入口"}
    Entry --> Local["IDE: review uncommitted changes"]
    Entry --> PR["GitHub PR: request Copilot reviewer"]
    Entry --> CLI["GitHub CLI / 其他入口"]
    Local --> Comments["Copilot comments"]
    PR --> Comments
    CLI --> Comments
    Comments --> Triage{"人工分流"}
    Triage --> Apply["采纳 suggested change"]
    Triage --> Fix["手动修复"]
    Triage --> Dismiss["记录原因后关闭"]
    Apply --> Rereview["必要时请求 re-review"]
    Fix --> Rereview

    style Comments fill:#dbeafe,stroke:#2563eb,stroke-width:2px
    style Triage fill:#fef3c7,stroke:#d97706,stroke-width:2px
```

## 2. 什么时候请求 Copilot review

适合：

- PR 已经有明确目标、测试说明和范围。
- diff 不大，Copilot 能完整看到主要上下文。
- 想在人工 reviewer 之前预筛可读性、遗漏测试、明显 bug 和安全问题。
- 本地提交前想快速检查未提交变更。

暂时不要：

- PR 还在大规模重写，diff 每几分钟都变。
- 需求本身还没定，review 会变成产品讨论。
- 涉及高风险迁移、权限、支付、安全或数据删除，却没有人工 owner。
- 团队没有决定自动 review 的计费和噪声处理。

## 3. PR 页面工作流

1. 创建 PR 或打开现有 PR。
2. 在 Reviewers 菜单里选择 Copilot。
3. 等待 Copilot 完成 review。
4. 逐条阅读评论，不直接批量采纳。
5. 对每条评论做分流：采纳、手动修复、关闭并说明原因。
6. 推送修复后，必要时手动请求 re-review。

GitHub 官方说明，Copilot 不会因为你推送新提交就自动重新 review；需要重新请求。并且 re-review 时可能重复之前已经关闭或点踩的评论，所以团队 SOP 要保留“重复评论如何处理”的规则。

## 4. 本地未提交变更工作流

本地 review 适合提交前快速拦截明显问题：

1. 在 Source Control 里确认 staged / unstaged 范围。
2. 请求 Copilot review uncommitted changes。
3. 只处理与本次提交有关的评论。
4. 修复后重新跑测试，再提交。

这一步不替代 PR review。它只减少低级问题进入 PR 的概率。

## 5. Repository instructions

Copilot code review 可以读取仓库自定义指令。常见做法是用 `.github/copilot-instructions.md` 放仓库级 review 规则，用 `.github/instructions/**/*.instructions.md` 放路径级规则。

示例：

```md
Review rules:
- Prioritize input validation.
- For migrations, check rollback.
- For UI, check mobile layout.
```

注意两个边界：

- Copilot code review 只读取每个自定义指令文件前 4,000 个字符。
- PR review 时读取的是 base branch 里的指令，不是 feature branch 里刚改的指令。

## 6. 人工 triage 清单

每条 Copilot 评论都按下面顺序判断：

1. **事实性**：评论引用的代码是否存在，路径和行号是否正确？
2. **可复现**：能否用测试、类型检查、lint、日志或手动步骤证明？
3. **风险级别**：是 blocker、should-fix、nit，还是误报？
4. **修复方式**：用 suggested change、手动改，还是拆新 issue？
5. **回归验证**：修复后跑哪些检查？

<details>
<summary>深读：自动 review 的边界</summary>

自动 review 适合稳定团队和稳定仓库，不适合刚开始试点时直接全仓启用。先选一个活跃但风险可控的仓库，统计一周评论质量、误报率、reviewer 节省时间和 Actions minutes 消耗，再决定是否扩大。
</details>

## 本章自检

1. 是否决定了 Copilot review 的入口和触发条件？
2. 是否有 repository instructions 指定团队 review 重点？
3. 是否知道 code review runs 的计费影响？
4. 是否对每条评论做人工 triage，而不是直接接受？
5. 是否在修复后重新跑测试并必要时请求 re-review？

通过标准：Copilot 评论能进入 reviewer 队列，但最终合并判断仍由人负责。

## 官方来源

- [Using GitHub Copilot code review](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review) —— GitHub 官方 code review 使用说明。
- [GitHub Copilot documentation](https://docs.github.com/en/copilot) —— GitHub 官方 Copilot 文档总入口。

## 接下来去哪

<Cards>
  <Card title="PR 摘要工作流" description="review 前先让 reviewer 快速进入上下文。" href="/docs/github-copilot/official/10-practical-playbooks/pr-summary" />
  <Card title="安全治理" description="启用自动 review 前先看计费、策略和指标。" href="/docs/github-copilot/official/08-security-governance" />
</Cards>
