Skip to main content

Настройка репозитория для приложение Copilot GitHub

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

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

приложение GitHub Copilot доступна для всех Copilot планов.
Download приложение GitHub Copilot

Используйте .github/github-app.yml в репозитории, чтобы определить, как приложение GitHub Copilot должно вести себя для этого проекта.

Эти параметры проекта также можно изменить в пользовательском интерфейсе приложения. Если .github/github-app.yml он уже существует, изменения пользовательского интерфейса записываются обратно в этот файл. Если он еще не существует, его можно создать из текущих параметров проекта в приложении.

Сведения о расположении файла конфигурации

Создайте файл по адресу:

Text
.github/github-app.yml

Приложение также поддерживает устаревшее имя .github/copilot-desktop.yml файла для обратной совместимости.

Инструкции по настройке на основе пользовательского интерфейса см. в разделе Настройка приложения GitHub приложение Copilot.

Проверка и доверие конфигурации

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

Предупреждение

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

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

Пример конфигурации

YAML
instructions: |
  Use bun instead of npm.

scripts:
  - name: Setup
    command: bun install
    triggers:
      - session.create
  - name: Run
    command: bun run dev
  - name: Archive cleanup
    command: rm -rf node_modules
    triggers:
      - session.archive

server_ready_pattern: '(?i)Local:\s+(https?://\S+)'
auto_open_in_browser: true

automation:
  auto_issue_session: true
  remote_control: false

Настройка инструкций и скриптов

instructions

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

scripts

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

Каждый элемент скрипта поддерживает:

  • name (string): Отображаемое имя в пользовательском интерфейсе.
  • command (string): Команда для выполнения.
  • triggers (string[]необязательно): события, которые автоматически запускают скрипт.

Скрипты без triggers использования вручную.

Значения триггера

Используйте канонические значения триггеров в файле:

  • session.create
  • session.archive

Приложение также принимает эти устаревшие псевдонимы при анализе существующих файлов:

  • workspace.create (псевдоним для session.create)
  • workspace.archive (псевдоним для session.archive)

При запуске COPILOT_SCRIPT_TRIGGER активированного скрипта задано каноническое значение:

  • session.create
  • session.archive

Настройка поведения обнаружения сервера и браузера

server_ready_pattern

server_ready_pattern — это регулярное выражение, используемое для определения времени запуска скрипта на сервере.

Шаблоны используют синтаксис, поддерживаемый контейнером Rust regex . Сведения о синтаксисе см. в документации по crate. Если шаблон недопустим, приложение использует шаблон обнаружения сервера по умолчанию.

Используйте первую группу записи для обнаруженного URL-адреса или порта. Приложение считывает группу 1записи:

  • Если запись является URL-адресом (http://... или https://...), используется URL-адрес.
  • Если запись является только номером порта (например 3000), приложение преобразует его в http://localhost:3000.

auto_open_in_browser

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

Настройка поведения автоматизации

Задайте параметры автоматизации в разделе automation:

  • automation.auto_issue_session (boolean) определяет, автоматически ли приложение запускает сеанс с контекстом проблемы. Если опущено, то по умолчанию используется trueдействующее значение по умолчанию.
  • automation.remote_control (boolean) определяет, можно ли получить доступ к сеансам GitHub из веб-интерфейса или GitHub Mobile. Если опущено, то по умолчанию используется falseдействующее значение по умолчанию.

Если ваше Copilot место поступает из организации, для доступа к удаленному управлению необходимо установить соответствующее значение "Сохранить локальные сеансы в облаке". Управляемые remoteControl предприятием параметры могут дополнительно ограничить удаленный контроль даже в том automation.remote_controlслучаеtrue. Дополнительные сведения см. в разделе [AUTOTITLE и О дистанционном управлении интерфейс командной строки GitHub Copilot сессиями](/copilot/reference/enterprise-administrators/enterprise-managed-settings).

Переменные среды выполнения для скриптов

Скрипты выполняются с этими переменными среды, предоставляемыми приложением:

VariableОписание
COPILOT_WORKSPACE_NAMEТекущее имя рабочей области.
COPILOT_WORKSPACE_PATHАбсолютный путь к рабочей области.
COPILOT_ROOT_PATHАбсолютный путь к корневому извлечению проекта.
COPILOT_DEFAULT_BRANCHProject ветви по умолчанию.
COPILOT_PORTПорт App WebSocket для текущего контекста рабочей области.
COPILOT_SCRIPT_TRIGGERТриггер, запускающий скрипт (только для триггерных скриптов).
GH_TOKENМаркер для выбранной GitHub учетной записи.
GH_HOSTУзел для выбранной GitHub учетной записи.
COPILOT_GH_ACCOUNT_*Маркеры для каждой учетной записи, вошедшего в систему, включая выбранную учетную запись.

Для каждой COPILOT_GH_ACCOUNT_* переменной приложение строчным регистром узла и входа оставляет буквы и цифры ASCII без изменений и заменяет все остальные байты UTF-8 шестнадцатеричным значением, окруженным подчеркиванием. Имя переменной использует формат COPILOT_GH_ACCOUNT_<HOST>_<LOGIN>. Например, маркер для alice включеноgithub.com``COPILOT_GH_ACCOUNT_github_2E_com_alice, а маркер для user включен ghe-example.com``COPILOT_GH_ACCOUNT_ghe_2D_example_2E_com_user.

Устаревшая совместимость

Для обратной совместимости приложение по-прежнему может проанализировать старую фигуру на основе scripts объектов:

YAML
scripts:
  setup: bun install
  run: bun run dev
  archive: rm -rf node_modules

В этой устаревшей форме:

  • setup сопоставляется с скриптом с триггером создания.
  • archive сопоставляется с скриптом с триггером архива.
  • run сопоставляется с записями скриптов { name, command } вручную и может быть одной командной строкой или списком объектов.