Skip to main content

Исключение контента из GitHub Copilot

Узнайте, как запретить доступ к определенному содержимому Copilot.

Кто может использовать эту функцию?

Repository administrators, organization owners, and enterprise owners can manage content exclusion settings. People with the "Maintain" role for a repository can view, but not edit, content exclusion settings for that repository.

Организации с планом Copilot Business или Copilot Enterprise.

Настройка исключения содержимого для репозитория

Параметры репозитория можно использовать для указания содержимого в репозитории, которое GitHub Copilot должно игнорироваться.

Примечание.

GitHub Copilot CLI, Агент кодирования Copilot и режим агента в Копилот Чат в IDE не поддерживают исключение содержимого. Для получения дополнительной информации о функциях Copilot см. АВТОЗАГОЛОВОК, АВТОЗАГОЛОВОК и АВТОЗАГОЛОВОК.

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  3. В разделе "Код и автоматизация" боковой панели щелкните Copilot и щелкните "Исключение содержимого".

    Если репозиторий наследует все исключения из родительской организации или от организаций в одном предприятии, вы увидите один или несколько серых прямоугольник в верхней части страницы, содержащий сведения об этих исключениях. Эти параметры нельзя изменить.

  4. В поле "Пути, которые следует исключить в этом репозитории", введите пути к файлам, из которых следует исключить Copilot .

    Используйте формат: - "/PATH/TO/DIRECTORY/OR/FILE"с каждым путем в отдельной строке. Вы можете добавить комментарии, запуская строку с #.

    Совет

    Для указания путей к файлам можно использовать сопоставление шаблонов fnmatch. Шаблоны являются нечувствительными к регистру. См . файл в документации по ruby-doc.org.

Пример путей, указанных в параметрах репозитория

YAML
- "/src/some-dir/kernel.rs"

Ignore the /src/some-dir/kernel.rs file in this repository.

- "secrets.json"

Ignore files called secrets.json anywhere in this repository.

- "secret*"

Ignore all files whose names begin with secret anywhere in this repository.

- "*.cfg"

Ignore files whose names end with .cfg anywhere in this repository.

- "/scripts/**"

Ignore all files in or below the /scripts directory of this repository.

# Ignore the `/src/some-dir/kernel.rs` file in this repository.
- "/src/some-dir/kernel.rs"

# Ignore files called `secrets.json` anywhere in this repository.
- "secrets.json"

# Ignore all files whose names begin with `secret` anywhere in this repository.
- "secret*"

# Ignore files whose names end with `.cfg` anywhere in this repository.
- "*.cfg"

# Ignore all files in or below the `/scripts` directory of this repository.
- "/scripts/**"

Настройка исключения содержимого для организации

Параметры организации можно использовать для указания файлов, которые должны игнорировать GitHub Copilot. Файлы могут находиться в репозитории Git или в любом месте файловой системы, которая не находится под контролем Git.

  1. В правом верхнем углу GitHub, щелкните рисунок профиля, а затем выберите октикона "организация" aria-hidden="true" aria-label="organization" %} Ваши организации.

  2. Рядом с организацией щелкните Параметры.

  3. На левой боковой панели щелкните Copilot и щелкните "Исключение контента".

  4. В поле "Репозитории и пути для исключения" введите сведения о файлах, из которых следует исключить Copilot .

    Чтобы исключить файлы, расположенные в любом месте (в репозитории Git или в другом месте), введите "*": путь к файлу или файлам, которые необходимо исключить. Если вы хотите указать несколько шаблонов пути к файлу, перечислите каждый шаблон в отдельной строке.

    Чтобы исключить файлы в репозитории Git из Copilot, введите ссылку на репозиторий в одной строке, а затем пути к расположениям в репозитории с каждым путем в отдельной строке. Используйте следующий формат, заменив REPOSITORY-REFERENCE ссылку на репозиторий, содержащий файлы, которые вы хотите исключить:

    REPOSITORY-REFERENCE:
      - "/PATH/TO/DIRECTORY/OR/FILE"
      - "/PATH/TO/DIRECTORY/OR/FILE"
      - ...
    

    На репозитории можно ссылаться с помощью различных протоколов. Вы можете использовать любой из следующих синтаксисов для REPOSITORY-REFERENCE данных Copilot независимо от того, как репозиторий был клонирован локально:

    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/
    
           `user@` И `:port` части игнорируются `REPOSITORY-REFERENCE` в вычислении путей, которые следует игнорировать для репозитория.
    

    Для Azure DevOps можно использовать новый (dev.azure.com) или старый (visualstudio.com) хост при указании REPOSITORY-REFERENCE, и Copilot будет совпадать с ними независимо от того, какой хост использовался для локального клонирования репозитория.

    Совет

    Для указания путей к файлам можно использовать сопоставление шаблонов fnmatch. Шаблоны являются нечувствительными к регистру. См . файл в документации по ruby-doc.org.

Пример репозиториев и путей в параметрах организации

YAML
"*":
  - "**/.env"

Ignore all .env files from all file system roots (Git and non-Git). For example, this excludes REPOSITORY-PATH/.env and also /.env. This could also have been written on a single line as:

"*": ["**/.env"]

octo-repo:

In the octo-repo repository in this organization:

  - "/src/some-dir/kernel.rs"

Ignore the /src/some-dir/kernel.rs file.

https://github.com/primer/react.git:

In the primer/react repository on GitHub:

  - "secrets.json"

Ignore files called secrets.json anywhere in this repository.

  - "/src/**/temp.rb"

Ignore files called temp.rb in or below the /src directory.

git@github.com:*/copilot:

In the copilot repository of any GitHub organization:

  - "/__tests__/**"

Ignore any files in or below the /__tests__ directory.

  - "/scripts/*"

Ignore any files in the /scripts directory.

git@gitlab.com:gitlab-org/gitlab-runner.git:

In the gitlab-org/gitlab-runner repository on GitLab:

  - "/main_test.go"

Ignore the /main_test.go file.

  - "{server,session}*"

Ignore any files with names beginning with server or session anywhere in this repository.

  - "*.m[dk]"

Ignore any files with names ending with .md or .mk anywhere in this repository.

  - "**/package?/*"

Ignore files directly within directories such as packages or packaged anywhere in this repository.

  - "**/security/**"

Ignore files in or below any security directories, anywhere in this repository.

# Ignore all `.env` files from all file system roots (Git and non-Git).
# For example, this excludes `REPOSITORY-PATH/.env` and also `/.env`.
# This could also have been written on a single line as:
#
# "*": ["**/.env"]
"*":
  - "**/.env"

# In the `octo-repo` repository in this organization:
octo-repo:
  # Ignore the `/src/some-dir/kernel.rs` file.
  - "/src/some-dir/kernel.rs"

# In the `primer/react` repository on GitHub:
https://github.com/primer/react.git:
  # Ignore files called `secrets.json` anywhere in this repository.
  - "secrets.json"
  # Ignore files called `temp.rb` in or below the `/src` directory.
  - "/src/**/temp.rb"

# In the `copilot` repository of any GitHub organization:
git@github.com:*/copilot:
  # Ignore any files in or below the `/__tests__` directory.
  - "/__tests__/**"
  # Ignore any files in the `/scripts` directory.
  - "/scripts/*"

# In the `gitlab-org/gitlab-runner` repository on GitLab:
git@gitlab.com:gitlab-org/gitlab-runner.git:
  # Ignore the `/main_test.go` file.
  - "/main_test.go"
  # Ignore any files with names beginning with `server` or `session` anywhere in this repository.
  - "{server,session}*"
  # Ignore any files with names ending with `.md` or `.mk` anywhere in this repository.
  - "*.m[dk]"
  # Ignore files directly within directories such as `packages` or `packaged` anywhere in this repository.
  - "**/package?/*"
  # Ignore files in or below any `security` directories, anywhere in this repository.
  - "**/security/**"

Настройка исключения содержимого для предприятия

В качестве владельца предприятия можно использовать параметры предприятия, чтобы указать файлы, которые GitHub Copilot должны игнорироваться. Файлы могут находиться в репозитории Git или в любом месте файловой системы, которая не находится под контролем Git.

  1. В верхней части страницы нажмите Управление AI.
  2. На боковой панели нажмите Copilot.
  3. Click Исключение контента.
  4. Используйте пути, чтобы указать, какое содержимое следует исключить. См. предыдущий раздел , настройка исключения содержимого для вашей организации.

Примечание.

Ключевое различие между настройкой исключения содержимого на корпоративном уровне и уровнем организации заключается в том, что правила, установленные на корпоративном уровне, применяются ко всем пользователям Copilot в организации, тогда как правила, заданные владелец организации, применяются только к пользователям, которым назначено место Copilot.

Тестирование изменений в исключениях содержимого

Вы можете использовать интегрированную среду разработки, чтобы убедиться, что изменения в исключениях содержимого работают должным образом.

Распространение изменений исключения содержимого в интегрированной среде разработки

После добавления или изменения исключений содержимого может потребоваться до 30 минут, чтобы принять в силу идентификаторы, в которых параметры уже загружены. Если вы не хотите ждать, можно вручную перезагрузить параметры исключения содержимого, выполнив следующие инструкции.

  •         **Для параметров idEs JetBrains и Visual Studio** перезагрузите параметры исключения содержимого, закрывая и повторно открыв приложение.
    
  •         **Для Visual Studio Code** выполните следующие действия, чтобы перезагрузить параметры исключения содержимого:
    
    1. Access к палитре команд. Например, нажмите клавиши SHIFT+COMMAND+P (Mac) или CTRL+SHIFT+P (Windows/Linux).
    2. Введите reload.
    3. Выберите разработчика: перезагрузить окно.
  •         **Для Vim/Neovim** исключения содержимого автоматически извлекаются из GitHub при каждом открытии файла.
    

Тестирование исключений содержимого

Вы можете убедиться, что настроенные исключения содержимого работают должным образом.

  1. Сначала убедитесь, что исключение содержимого работает в файлах, которые не подвергаются исключению содержимого. To to:
    • В интегрированной среде разработки откройте файл, который не подлежит исключению содержимого.
    • Внесите правку, которая обычно генерирует встроенное предложение. Следует предложить предложение
  2. Откройте файл, который следует исключить и сделать то же изменение. Предложение не должно быть предложено.
  3. Чтобы проверить исключение содержимого для Копилот Чат:
    • В интегрированной среде разработки откройте панель Копилот Чат.

    • Откройте файл, который следует исключить и закрыть все другие файлы, открытые в редакторе.

    • Убедитесь, что открытый файл подключен к запросу в качестве контекстного файла.

    • Введите запрос explain this file.

      Если файл исключен, Копилот Чат не сможет использовать файл для создания ответа. Файл не будет указан в качестве ссылки в ответе Copilot.

Управление исключениями контента с помощью REST API

Владельцы организаций и предприятий также могут программно управлять исключениями контента с помощью REST API GitHub.

Дополнительные сведения см. в разделе Конечные точки REST API для управления исключением контента Copilot.

Дополнительные материалы

  •         [автозаголовок](/copilot/concepts/content-exclusion-for-github-copilot)
    
  •         [автозаголовок](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-changes-to-content-exclusions-for-github-copilot)
    
  •         [Configuring content exclusion for Visual Studio](https://learn.microsoft.com/en-us/visualstudio/ide/visual-studio-github-copilot-admin?view=vs-2022#configure-content-exclusion) в документации Microsoft Learn