Skip to main content

Configuring coding guidelines for GitHub Copilot code review

Learn how to customize Copilot code review with custom coding guidelines.

Note

Custom coding guidelines are limited to selected participants in the 公共预览版 of Copilot code review, and only available as part of a subscription to GitHub Copilot Enterprise.

About coding guidelines

You can customize Copilot code review with custom coding guidelines written in natural language. For more information on Copilot code review, see "Using GitHub Copilot code review."

With coding guidelines, Copilot can give feedback based on your organization's specific coding style and best practices.

Because Copilot code review is powered by a large language model, it can help with enforcing coding guidelines that are not covered by your linter or static analysis tool.

Coding guidelines are configured at the repository level. You can create and enable up to 6 coding guidelines per repository.

Note

  • Coding guidelines only work with languages supported by Copilot code review. For a list of supported languages, see "Using GitHub Copilot code review."
  • Coding guidelines only apply to code reviews carried out by Copilot. The guidelines do not affect Copilot code completion suggestions, or code suggested in Copilot Chat responses.

Dos and don'ts for coding guidelines

  • Do use simple, clear and concise language to describe your coding guideline.
  • Do be as specific as possible about what Copilot should look for - that is, what you *o or don't want to see in your code.
  • Do take a look at the "Coding guidelines examples" *elow for some inspiration.
  • Don't try to use coding guidelines to enforce style guidelines that can be covered *y your linter or static analysis tool.
  • Don't use wording that is ambiguous or could be interpreted in different ways.
  • Don't try to fit multiple different ideas into a single coding guideline.*

Creating a coding guideline

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. In the "Code & automation" section of the side bar, click Copilot, then Code review.

  4. Click Create guideline.

  5. Under "Name," give the coding guideline a name.

  6. Under "Description," provide a description of the coding guideline up to 600 characters long. This will be used by Copilot to understand your coding style and to decide when to leave a comment.

    How you write your description has a big impact on the quality of comments that Copilot will generate. For help with writing effective coding guidelines, see "Dos and don'ts for coding guidelines" above, and "Coding guidelines examples" below.

  7. Optionally, limit the coding guideline to specific file types or paths by clicking Add file path and adding path patterns.

    You can use fnmatch syntax to define paths to target, with * as a wildcard to match any string of characters.

    由于 GitHub 对 File.fnmatch 语法使用 File::FNM_PATHNAME 标记,因此 * 通配符与目录分隔符 (/) 不匹配。 例如,qa/* 将匹配以 qa/ 开头并包含单个斜杠的所有分支,但不会匹配 qa/foo/bar。 可以使用 qa/**/*qa 后面包含任意数量的斜杠,这将匹配 qa/foo/bar/foobar/hello-world。 还可以使用 qa**/**/* 扩展 qa 字符串,以使规则更具包容性。

    有关语法选项的详细信息,请参阅 fnmatch 文档

    注意:**** 并非 fnmatch 语法中的所有表达式都受分支保护规则支持。 请注意以下约束条件:

    • 不能将反斜杠 (\) 字符用作引号,因为 GitHub 不支持在分支保护规则中使用反斜杠。
    • 可以在方括号 ([]) 中指定字符集,但当前不能用 ^ 运算符(例如 [^charset])来补充该字符集。
    • 尽管 GitHub 支持 fnmatch 语法中的 File::FNM_PATHNAME,但不支持 File::FNM_EXTGLOB
  8. Test your coding guideline to make sure it works as expected.

    1. Click Add sample.
    2. Add your own sample, or press Generate code sample to automatically generate a code sample based on your title and description.
    3. Click Save to save the code sample.
    4. Test the coding guideline against your sample by pressing Run.
  9. Save your coding guideline, and turn it on, by clicking Save guideline.

Running a review with coding guidelines

When you request a review from Copilot, it will automatically use the repository's enabled coding guidelines to review your code. For more information, see "Using GitHub Copilot code review."

Comments generated based on a coding guideline will include a message, highlighting their source.

Screenshot of a comment produced from a custom coding guideline.

Coding guidelines examples

Example 1: Avoid using magic numbers

Title: Avoid using magic numbers

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

Path patterns: **/*.py

Example 2: Don't use SELECT * in SQL queries

Title: Don't use `SELECT *` in SQL queries

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

Path patterns: None (applies to all file types, as SQL queries may be embedded in code).

Example 3: Use fetch for HTTP requests

Title: Use `fetch` for HTTP requests

Description: Use `fetch` for HTTP requests, not `axios` or `superagent` or other libraries.

Path patterns: **/*.ts, **/*.js, **/*.jsx, **/*.tsx

Example 4: Always tag metrics with the current environment

Title: Always tag metrics with the current environment

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

Path patterns: */*.go, */*.java