注意
This feature is currently in 公共预览版 and is subject to change.
This version of this article is for using repository custom instructions on the GitHub website. Click the tabs above for information on using custom instructions in other environments.
About repository custom instructions for Copilot
Repository custom instructions let you provide Copilot with repository-specific guidance and preferences.
目前以下项支持仓库自定义指令:
- VS Code 中的 Copilot Chat****
- Copilot 编码智能体
- Visual Studio、JetBrains IDE、Xcode 中和 GitHub 网站上的 Copilot Chat(仅限
copilot-instructions.md
文件)**** - Copilot 代码评审(仅限
copilot-instructions.md
文件)
Prerequisites for repository custom instructions
- You must have a custom instructions file (see the instructions below).
-
Your personal choice of whether to use custom instructions must be set to enabled. This is enabled by default. See Enabling or disabling repository custom instructions later in this article.
-
During the 公共预览版, if you're using a Copilot Business or Copilot Enterprise plan, the organization or enterprise that provides your plan must have the Opt in to preview features setting enabled. See Managing policies and features for Copilot in your organization and Managing policies and features for Copilot in your enterprise.
Creating a repository custom instructions file
Copilot Chat on the GitHub website and Copilot 代码评审 support a single .github/copilot-instructions.md
custom instructions file stored in the repository.
In addition, Copilot 编码智能体 supports one or more .instructions.md
files stored within .github/instructions
in the repository. Each file can specify applyTo
frontmatter to define what files or directories its instructions apply to.
Using a single .github/copilot-instructions.md
file
-
In the root of your repository, create a file named
.github/copilot-instructions.md
.Create the
.github
directory if it does not already exist. -
Add natural language instructions to the file, in Markdown format.
Whitespace between instructions is ignored, so the instructions can be written as a single paragraph, each on a new line, or separated by blank lines for legibility.
Using one or more .instructions.md
files
-
Create the
.github/instructions
directory if it does not already exist. -
Create one or more
.instructions.md
files, adding natural language instructions to the file(s).Whitespace between instructions is ignored, so the instructions can be written as a single paragraph, each on a new line, or separated by blank lines for legibility.
-
Specify what files or directories the instructions apply to by adding
applyTo
frontmatter to the Markdown files, using glob syntax.--- applyTo: "app/models/**/*.rb" --- Add custom instructions here
To apply the instructions to all files, use the
**
pattern.
Writing effective repository custom instructions
The instructions you add to your custom instruction file(s) should be short, self-contained statements that provide Copilot with relevant information to help it work in this repository. Because the instructions are sent with every chat message, they should be broadly applicable to most requests you will make in the context of the repository.
The exact structure you utilize for your instructions file(s) will vary by project and need, but the following guidelines provide a good starting point:
- Provide an overview of the project you're working on, including its purpose, goals, and any relevant background information.
- Include the folder structure of the repository, including any important directories or files that are relevant to the project.
- Specify the coding standards and conventions that should be followed, such as naming conventions, formatting rules, and best practices.
- Include any specific tools, libraries, or frameworks that are used in the project, along with any relevant version numbers or configurations.
The following instructions file(s) is an example of these practices in action:
# Project Overview
This project is a web application that allows users to manage their tasks and to-do lists. It is built using React and Node.js, and uses MongoDB for data storage.
## Folder Structure
- `/src`: Contains the source code for the frontend.
- `/server`: Contains the source code for the Node.js backend.
- `/docs`: Contains documentation for the project, including API specifications and user guides.
## Libraries and Frameworks
- React and Tailwind CSS for the frontend.
- Node.js and Express for the backend.
- MongoDB for data storage.
## Coding Standards
- Use semicolons at the end of each statement.
- Use single quotes for strings.
- Use function based components in React.
- Use arrow functions for callbacks.
## UI guidelines
- A toggle is provided to switch between light and dark mode.
- Application should have a modern and clean design.
You should also consider the size and complexity of your repository. The following types of instructions may work for a small repository with only a few contributors, but for a large and diverse repository, these may cause problems:
- Requests to refer to external resources when formulating a response
- Instructions to answer in a particular style
- Requests to always respond with a certain level of detail
For example, the following instructions may not have the intended results:
Always conform to the coding styles defined in styleguide.md in repo my-org/my-repo when generating code.
Use @terminal when answering questions about Git.
Answer all questions in the style of a friendly colleague, using informal language.
Answer all questions in less than 1000 characters, and words of no more than 12 characters.
Repository custom instructions in use
The instructions in the file(s) are available for use by Copilot Chat as soon as you save the file(s). The complete set of instructions will be automatically added to requests that you submit to Copilot in the context of that repository. For example, they are added to the prompt you submit to Copilot Chat.
In Copilot Chat's immersive view (github.com/copilot), you can start a conversation that uses repository custom instructions by adding, as an attachment, the repository that contains the instructions file.
Whenever repository custom instructions are used by Copilot Chat, the instructions file is added as a reference for the response that's generated. To find out whether repository custom instructions were used, expand the list of references at the top of a chat response in the Chat panel and check whether the .github/copilot-instructions.md
file is listed.
You can click the reference to open the file.
注意
- 可以向聊天应用多种类型的自定义指令。 个人指令具有最高优先级,存储库指令其次,组织指令的优先级最低。 但是,所有相关指令集仍将被合并并提供给 Copilot Chat。
- 请尽可能避免提供冲突的指令集。 如果顾虑响应质量,也可以选择暂时禁用存储库说明。 请参阅“Adding repository custom instructions for GitHub Copilot”。
启用或禁用存储库自定义说明
可以选择是否要让 Copilot 使用基于仓库的自定义指令。
为 Copilot Chat 启用或禁用自定义指令
默认情况下,Copilot Chat 已启用自定义指令,但你可以随时禁用或重新启用它们。 这适用于你自己的 Copilot Chat 使用,不会影响其他用户。
-
On GitHub.com, do one of the following:
- Go to a repository with a custom instructions file and open the assistive chat panel.
- Go to the immersive view of Copilot Chat (github.com/copilot) and attach a repository that contains a custom instructions file.
-
Click the button at the top of the Chat panel, or the top right of the immersive page.
-
Click Disable custom instructions or Enable custom instructions.
注意
You will only see these options in the context of a repository that contains a custom instructions file.
Your choice persists, for all repositories containing a custom instructions file, until you change it.
为 Copilot 代码评审 启用或禁用自定义指令
默认情况下,Copilot 代码评审 已启用自定义指令,但你可以在 GitHub.com 上的仓库设置中禁用或重新启用它们。 这适用于 Copilot 对此仓库中执行的所有代码评审使用自定义指令。
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。
-
在边栏的“Code & automation”部分,单击 Copilot,然后单击“Code review”********。
-
打开或关闭“Use custom instructions when reviewing pull requests”选项。