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 или Копилот Энтерпрайз.

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

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

Примечание.

          GitHub Copilot CLI, Copilot облачный агент, и режим агента в Копилот Чат IDE не поддерживают исключение контента. Для получения дополнительной информации об этих Copilot функциях см. [AUTOTITLE](/copilot/concepts/agents/about-copilot-cli), [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) и [AUTOTITLE](/copilot/how-tos/chat-with-copilot/chat-in-ide).
  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. Под именем организации щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

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

  4. В левой боковой панели нажмите Copilot и выберите «Исключение контента».

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

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

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

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

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

    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. Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
  2. В верхней части страницы нажмите Управление AI.
  3. На боковой панели нажмите Copilot.
  4. Нажмите «Исключение контента».
  5. Используйте пути, чтобы указать, какое содержимое следует исключить. См. предыдущий раздел , настройка исключения содержимого для вашей организации.

Примечание.

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

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

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

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

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

  • Для IDE 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. Для проверки исключения контента для Копилот Чат:
    • В вашем IDE откройте Копилот Чат панель.

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

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

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

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

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

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

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

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