Skip to main content

关于 GitHub Copilot 代码评审的编码准则

了解可以如何使用自定义编码准则来改进 Copilot 的拉取请求评审。

注意

自定义编码准则功能仅适用于 Copilot Enterprise 计划,目前仅限选定客户使用。

此功能将被弃用,取而代之的是使用 Copilot 自定义指令来自定义 Copilot 代码评审。 请参见 为 GitHub Copilot 添加存储库自定义说明

关于编码准则

可以使用以自然语言编写的自定义编码准则自定义 Copilot 代码评审。 有关 Copilot 代码评审的详细信息,请参阅“关于 Copilot 代码评审”。

凭借编码准则,Copilot 可根据组织的特定编码风格和最佳做法提供反馈。

由于 Copilot 代码评审由大型语言模型提供支持,因此有助于强制执行 Linter 或静态分析工具未涵盖的编码准则。

编码准则在存储库级别配置。 每个存储库最多支持创建和启用 6 项编码准则。 请参阅“Configuring coding guidelines for GitHub Copilot code review”。

从 Copilot 请求评审时,它将自动使用存储库已启用的编码准则来评审你的代码。

基于编码准则生成的注释将包含一条消息,并突出显示了其源。

注意

编码准则仅适用于 Copilot 执行的代码评审。 这些准则不会影响 Copilot 代码完成建议,也不会影响 Copilot 聊天响应中建议的代码。

编码准则的注意事项

  • 要使用简单明了、简洁的语言来描述编码准则****。
  • 要尽可能具体地说明 Copilot 应寻求的内容,即你希望或不希望在代码中看到的内容****。
  • 要查看下面的编码准则示例以获取一些灵感****。
  • 不要尝试使用编码准则来强制实施可由 Linter 或静态分析工具涵盖的风格准则****。
  • 不要使用含糊不清或可能以其他方式解读的措辞****。
  • 不要尝试将多种不同想法纳入一项编码准则****。

编码准则示例

示例 1:避免使用 magic 数字

标题:Avoid using magic numbers****

说明Don't use magic numbers in code. Numbers should be defined as constants or variables with meaningful names.

路径模式:**/*.py****

示例 2:不要在 SQL 查询中使用 SELECT *

标题:Don't use `SELECT *` in SQL queries****

说明Don't use `SELECT *` in SQL queries. Always specify the columns you want to select. `COUNT(*)` is allowed.

路径模式:无(适用于所有文件类型,因为 SQL 查询可能嵌入代码中)****。

示例 3:对 HTTP 请求使用 fetch

标题:Use `fetch` for HTTP requests****

说明Use `fetch` for HTTP requests, not `axios` or `superagent` or other libraries.

路径模式:**/*.ts**/*.js**/*.jsx**/*.tsx****

示例 4:始终以当前环境标记指标

标题:Always tag metrics with the current environment****

说明Always include a `env` tag with the current environment when emitting metrics, for example, `env:prod` or `env:dev`.

路径模式:*/*.go*/*.java****

其他阅读材料