Skip to main content

关于 GitHub Copilot 的内容排除功能

了解 GitHub Copilot 内容排除功能的工作原理。

谁可以使用此功能?

存储库管理员和组织所有者可以管理内容排除设置。

具有存储库“维护”角色的人员可以查看该存储库的内容排除设置,但不能对其进行编辑。

订阅 GitHub Copilot Business 或 GitHub Copilot Enterprise 的组织

Note

从 GitHub Copilot 中排除的内容目前为公开 Beta 版,可能会有变动。

可以在存储库或组织的设置中通过排除特定的内容路径来忽略特定的文件,从而配置 GitHub Copilot。

指定内容排除项后最多有三种效果,具体取决于 IDE 的支持级别:

  • 代码完成功能在受影响的文件中不可用。
  • 受影响文件中的内容不会用于其他文件中的代码完成建议。
  • 受影响文件中的内容不会用于 GitHub Copilot Chat 的回答。

添加或更改内容排除项后,可能需要长达 30 分钟才能在已加载设置的 IDE 中生效。 可以将更改应用于自己的 IDE,强制其重新加载内容排除设置。请参阅“在 IDE 中测试对内容排除项的更改”。

内容排除功能的可用性

工具代码完成功能支持Copilot Chat 支持
Visual Studio
Visual Studio Code
JetBrains IDE
Vim/Neovim不适用
Azure Data Studio不适用
GitHub.com不适用

内容排除功能的限制

  • 在 Visual Studio Code 中的 Copilot Chat 中,当在问题中使用 @github 聊天参与者时,不会应用内容排除项。
  • 如果 IDE 在未排除的文件中提供了 Copilot 中的语义信息,则可能会使用该信息。 此类内容的示例包括代码中使用的符号的类型信息和悬停定义。

可以排除哪些内容?

在存储库的设置中指定内容排除项时,只能排除该存储库中的文件。

在组织的设置中指定内容排除项时,可以排除在 GitHub.com 上托管的任何基于 Git 的存储库中的文件,或者排除使用以下任一语法访问的文件:

http[s]://host.xz[:port]/path/to/repo.git/

git://host.xz[:port]/path/to/repo.git/

[user@]host.xz:path/to/repo.git/

ssh://[user@]host.xz[:port]/path/to/repo.git/

哪些用户受内容排除项设置的影响?

内容排除设置仅适用于满足以下每个条件的人

  • 作为 GitHub Copilot Business 或 GitHub Copilot Enterprise 订阅的一部分,他们已被授予一个席位
  • 他们是配置了内容排除的同一的成员

任何其他可以访问指定文件的人仍将看到引用指定文件的代码完成建议和 GitHub Copilot Chat 响应。

不能在企业设置中指定内容排除项。 但在组织或存储库设置中定义的所有内容排除项,都适用于已作为 Copilot Business 或 Copilot Enterprise 订阅一部分被授予 Copilot 席位的企业的所有成员。

这意味着,例如,如果你是属于企业 X 的组织管理员,则可以为任何基于 Git 的存储库(托管在 GitHub 或其他位置)中的文件设置排除项,排除将适用于从企业 X 中的任何组织获取其 Copilot Business 或 Copilot Enterprise 许可证的任何人员。

Tip

要更轻松地跟踪内容排除项,请在包含受影响文件的存储库设置或拥有该存储库的组织设置中创建排除项。

将数据发送到 GitHub

配置内容排除项后,客户端(例如,VS Code 的 Copilot 扩展)将当前存储库 URL 发送到 GitHub 服务器,以便服务器可以将正确的策略返回至客户端。 这些 URL 不会记录到任何位置。

后续步骤

要在存储库或组织中设置内容排除项,请参阅“为 GitHub Copilot 配置内容排除”。