Используйте .github/github-app.yml в репозитории, чтобы определить, как приложение GitHub Copilot должно вести себя для этого проекта.
Эти параметры проекта также можно изменить в пользовательском интерфейсе приложения. Если .github/github-app.yml он уже существует, изменения пользовательского интерфейса записываются обратно в этот файл. Если он еще не существует, его можно создать из текущих параметров проекта в приложении.
Сведения о расположении файла конфигурации
Создайте файл по адресу:
.github/github-app.yml
.github/github-app.yml
Приложение также поддерживает устаревшее имя .github/copilot-desktop.yml файла для обратной совместимости.
Инструкции по настройке на основе пользовательского интерфейса см. в разделе Настройка приложения GitHub приложение Copilot.
Проверка и доверие конфигурации
Когда приложение обнаруживает конфигурацию из репозитория, он не применяет инструкции репозитория, скрипты или другие параметры из файла, пока не будет проверяться и принимать конфигурацию. Это защищает вас от выполнения команд или применения параметров, добавленных другим участником. Конфигурации, создаваемые или обновляемые с помощью пользовательского интерфейса приложения, являются доверенными автоматически.
Предупреждение
Перед принятием конфигурации репозитория просмотрите каждую настроенную команду и зависимости, которые она выполняет. Скрипты и дочерние процессы получают GitHub учетные данные, описанные далее в этой статье, поэтому никогда не настраивайте их для регистрации или сохранения этих переменных среды.
Если файл изменяется за пределами приложения, включая изменения в пробелы или комментарии, необходимо проверить и принять обновленную конфигурацию перед применением приложения. Пока вы не примите текущую версию, приложение продолжает использовать параметры проекта, которые ранее были настроены в приложении.
Пример конфигурации
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: |
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.createsession.archive
Приложение также принимает эти устаревшие псевдонимы при анализе существующих файлов:
workspace.create(псевдоним дляsession.create)workspace.archive(псевдоним дляsession.archive)
При запуске COPILOT_SCRIPT_TRIGGER активированного скрипта задано каноническое значение:
session.createsession.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_ | Текущее имя рабочей области. |
COPILOT_WORKSPACE_ | Абсолютный путь к рабочей области. |
COPILOT_ROOT_PATH | Абсолютный путь к корневому извлечению проекта. |
COPILOT_DEFAULT_ | Project ветви по умолчанию. |
COPILOT_PORT | Порт App WebSocket для текущего контекста рабочей области. |
COPILOT_SCRIPT_ | Триггер, запускающий скрипт (только для триггерных скриптов). |
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 объектов:
scripts: setup: bun install run: bun run dev archive: rm -rf node_modules
scripts:
setup: bun install
run: bun run dev
archive: rm -rf node_modules
В этой устаревшей форме:
setupсопоставляется с скриптом с триггером создания.archiveсопоставляется с скриптом с триггером архива.runсопоставляется с записями скриптов{ name, command }вручную и может быть одной командной строкой или списком объектов.