Skip to main content

使用 GitHub Copilot代码评审 于 GitHub

GitHub Copilot 评审你的拉取请求并建议可随时应用的更改,以便快速获得对每个提交的可执行反馈。

Copilot 代码评审 对于没有 Copilot 许可证的组织成员,当企业管理员或组织所有者启用时,也可以使用。 请参阅Copilot 代码评审没有Copilot许可证的组织成员

请求来自Copilot的评审

  1. 在 GitHub.com 上,创建或打开拉取请求。

  2. 打开 “审阅者 ”菜单,然后选择 Copilot

    从“审查者”菜单中选择“Copilot”的屏幕截图。

  3. 等待 Copilot 完成评审。 这通常会在 30 秒内完成。

  4. 阅读Copilot有关拉取请求的评论。

    Copilot 留下的代码评审的屏幕截图。

Copilot 始终保留“批注”评审,而不是“批准”或“请求更改”评审。 其审查不计入所需的批准,也不会阻止合并。

Copilot的审阅评论功能类似于人工审核者的评论。 添加反应、回复、解决或隐藏它们。 您添加的任何答复对其他人可见,但对Copilot不可见。

处理建议的更改

Copilot的反馈通常包含建议的更改,你只需点击几下即可应用。 接受单个建议或将多个建议分组到一个提交中。 有关详细信息,请参阅“在拉取请求中加入反馈”。

Copilot云代理若要直接实现建议的更改,

  1. 加入 公开预览 以启用 Copilot代码评审中的工具 并启用 Copilot云代理。
  2. 在审阅批注 GitHub Copilot代码评审中,单击“ 实现建议”。 这将创建一个草稿批注,可在其中指示 Copilot 处理特定反馈。 Copilot 然后创建一个新的拉取请求,针对您的分支,并应用建议。

提供对评论的反馈

评价 Copilot的评论,以帮助改进未来的建议。

  1. 在评论批注 Copilot中,单击大拇指向上(:+1:)或拇指向下(:-1:)按钮。

    显示 Copilot 代码评审 注释的屏幕截图,其中包含拇指向上和拇指向下按钮。

  2. 如果单击拇指向下,可以选择选择原因并留下批注,然后单击“ 提交反馈”。

    对 Copilot 的注释提供负面反馈时,用于提供附加信息的表单截图。

请求重新评审

Copilot 推送新更改时不会自动重新评审。 若要请求重新评审,请单击Copilot”菜单中“名称”旁边的**** 按钮。

重新评审时,Copilot 可能会重复以前的注释,即使你已解决或给予低评价这些注释。

启用自动评审

默认情况下,在每个拉取请求上手动请求评审 Copilot 。 若要为所有拉取请求启用自动评审,请参阅 通过GitHub Copilot配置自动代码评审

使用自定义指令来个性化评论

您可以通过向存储库添加自定义说明来定制 Copilot 代码评审。

存储库自定义说明可以是存储库范围的,也可以是特定于路径的。 您可以在存储库的 .github/copilot-instructions.md 文件中指定整个存储库的自定义指令。 可以使用此文件存储希望 Copilot 在存储库中的任何位置查看代码时考虑的信息。

你也可以编写 Copilot 仅在查看与指定路径匹配的文件中的代码时使用的说明。 在一个或多个 .github/instructions/**/*.instructions.md 文件中编写这些说明。

有关详细信息,请参阅“为GitHub Copilot添加存储库自定义说明”。

注意

* Copilot 代码评审 仅读取任何自定义指令文件的前 4,000 个字符。 超出此限制的任何说明都不会影响Copilot 代码评审生成的评论。 此限制不适用于 副驾驶聊天 或 Copilot云代理。

  • 评审拉取请求时,Copilot 使用拉取请求基础分支中的自定义指令。 例如,如果你的拉取请求旨在将 my-feature-branch 合并到 main,Copilot 将使用 main 中的自定义指令。

示例

以下是一个 .github/copilot-instructions.md 文件的示例,其中包含三条指令,这些指令将应用于仓库中所有 Copilot 代码评审。

When performing a code review, respond in Spanish.

When performing a code review, apply the checks in the `/security/security-checklist.md` file.

When performing a code review, focus on readability and avoid nested ternary operators.

延伸阅读