{"meta":{"title":"Настройка репозитория для приложение Copilot GitHub","intro":"Определите инструкции, сценарии и поведение автоматизации для конкретного GitHub Copilot appрепозитория.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ru/copilot","title":"GitHub Copilot"},{"href":"/ru/copilot/reference","title":"Справочные материалы"},{"href":"/ru/copilot/reference/github-copilot-app-reference","title":"Ссылка GitHub Copilot app"},{"href":"/ru/copilot/reference/github-copilot-app-reference/repository-configuration","title":"Конфигурация репозитория"}],"documentType":"article"},"body":"# Настройка репозитория для приложение Copilot GitHub\n\nОпределите инструкции, сценарии и поведение автоматизации для конкретного GitHub Copilot appрепозитория.\n\nИспользуйте `.github/github-app.yml` в репозитории, чтобы определить, как GitHub Copilot app должно вести себя для этого проекта.\n\nЭти параметры проекта также можно изменить в пользовательском интерфейсе приложения. Если `.github/github-app.yml` он уже существует, изменения пользовательского интерфейса записываются обратно в этот файл. Если он еще не существует, его можно создать из текущих параметров проекта в приложении.\n\n## Сведения о расположении файла конфигурации\n\nСоздайте файл по адресу:\n\n```text copy\n.github/github-app.yml\n```\n\nПриложение также поддерживает устаревшее имя `.github/copilot-desktop.yml` файла для обратной совместимости.\n\nИнструкции по настройке на основе пользовательского интерфейса см. в разделе [Настройка приложения GitHub приложение Copilot](/ru/copilot/how-tos/github-copilot-app/customize-github-copilot-app).\n\n## Проверка и доверие конфигурации\n\nКогда приложение обнаруживает конфигурацию из репозитория, он не применяет инструкции репозитория, скрипты или другие параметры из файла, пока не будет проверяться и принимать конфигурацию. Это защищает вас от выполнения команд или применения параметров, добавленных другим участником. Конфигурации, создаваемые или обновляемые с помощью пользовательского интерфейса приложения, являются доверенными автоматически.\n\n> \\[!WARNING]\n> Перед принятием конфигурации репозитория просмотрите каждую настроенную команду и зависимости, которые она выполняет. Скрипты и дочерние процессы получают GitHub учетные данные, описанные далее в этой статье, поэтому никогда не настраивайте их для регистрации или сохранения этих переменных среды.\n\nЕсли файл изменяется за пределами приложения, включая изменения в пробелы или комментарии, необходимо проверить и принять обновленную конфигурацию перед применением приложения. Пока вы не примите текущую версию, приложение продолжает использовать параметры проекта, которые ранее были настроены в приложении.\n\n## Пример конфигурации\n\n```yaml copy\ninstructions: |\n  Use bun instead of npm.\n\nscripts:\n  - name: Setup\n    command: bun install\n    triggers:\n      - session.create\n  - name: Run\n    command: bun run dev\n  - name: Archive cleanup\n    command: rm -rf node_modules\n    triggers:\n      - session.archive\n\nserver_ready_pattern: '(?i)Local:\\s+(https?://\\S+)'\nauto_open_in_browser: true\n\nautomation:\n  auto_issue_session: true\n  remote_control: false\n```\n\n## Настройка инструкций и скриптов\n\n### `instructions`\n\nИспользуйте `instructions` для добавления инструкций для конкретного репозитория в системный запрос сеансов в проекте. Если вы также настраиваете глобальные инструкции в приложении, глобальные инструкции применяются сначала, а затем инструкции проекта.\n\n### `scripts`\n\nИспользуется `scripts` для определения команд, которые отображаются в приложении и могут выполняться вручную или на определенных триггерах.\n\nКаждый элемент скрипта поддерживает:\n\n* `name` (`string`): Отображаемое имя в пользовательском интерфейсе.\n* `command` (`string`): Команда для выполнения.\n* `triggers` (`string[]`необязательно): события, которые автоматически запускают скрипт.\n\nСкрипты без `triggers` использования вручную.\n\n### Значения триггера\n\nИспользуйте канонические значения триггеров в файле:\n\n* `session.create`\n* `session.archive`\n\nПриложение также принимает эти устаревшие псевдонимы при анализе существующих файлов:\n\n* `workspace.create` (псевдоним для `session.create`)\n* `workspace.archive` (псевдоним для `session.archive`)\n\nПри запуске `COPILOT_SCRIPT_TRIGGER` активированного скрипта задано каноническое значение:\n\n* `session.create`\n* `session.archive`\n\n## Настройка поведения обнаружения сервера и браузера\n\n### `server_ready_pattern`\n\n`server_ready_pattern` — это регулярное выражение, используемое для определения времени запуска скрипта на сервере.\n\nШаблоны используют синтаксис, поддерживаемый контейнером Rust `regex` . Сведения о синтаксисе [см.](https://docs.rs/regex/1/regex/#syntax) в документации по crate. Если шаблон недопустим, приложение использует шаблон обнаружения сервера по умолчанию.\n\nИспользуйте первую группу записи для обнаруженного URL-адреса или порта. Приложение считывает группу `1`записи:\n\n* Если запись является URL-адресом (`http://...` или `https://...`), используется URL-адрес.\n* Если запись является только номером порта (например `3000`), приложение преобразует его в `http://localhost:3000`.\n\n### `auto_open_in_browser`\n\nЕсли `auto_open_in_browser` это `true`так, приложение открывает обнаруженный URL-адрес выполнения в интегрированном браузере. Если это поле опущено, то по умолчанию используется `true`действующее значение по умолчанию.\n\n## Настройка поведения автоматизации\n\nЗадайте параметры автоматизации в разделе `automation`:\n\n* `automation.auto_issue_session` (`boolean`) определяет, автоматически ли приложение запускает сеанс с контекстом проблемы. Если опущено, то по умолчанию используется `true`действующее значение по умолчанию.\n* `automation.remote_control` (`boolean`) определяет, можно ли получить доступ к сеансам GitHub из веб-интерфейса или GitHub Mobile. Если опущено, то по умолчанию используется `false`действующее значение по умолчанию.\n\nЕсли ваше Copilot место поступает из организации, для доступа к удаленному управлению необходимо установить соответствующее значение \"Сохранить локальные сеансы в облаке\". Управляемые `remoteControl` предприятием параметры могут дополнительно ограничить удаленный контроль даже в том `automation.remote_control`случае`true`. Дополнительные сведения см. в разделе \\[AUTOTITLE и [О дистанционном управлении GitHub Copilot CLI сессиями](/ru/copilot/concepts/agents/copilot-cli/about-remote-control)]\\(/copilot/reference/enterprise-administrators/enterprise-managed-settings).\n\n## Переменные среды выполнения для скриптов\n\nСкрипты выполняются с этими переменными среды, предоставляемыми приложением:\n\n| Variable                 | Описание                                                                                  |\n| ------------------------ | ----------------------------------------------------------------------------------------- |\n| `COPILOT_WORKSPACE_NAME` | Текущее имя рабочей области.                                                              |\n| `COPILOT_WORKSPACE_PATH` | Абсолютный путь к рабочей области.                                                        |\n| `COPILOT_ROOT_PATH`      | Абсолютный путь к корневому извлечению проекта.                                           |\n| `COPILOT_DEFAULT_BRANCH` | Project ветви по умолчанию.                                                               |\n| `COPILOT_PORT`           | Порт App WebSocket для текущего контекста рабочей области.                                |\n| `COPILOT_SCRIPT_TRIGGER` | Триггер, запускающий скрипт (только для триггерных скриптов).                             |\n| `GH_TOKEN`               | Маркер для выбранной GitHub учетной записи.                                               |\n| `GH_HOST`                | Узел для выбранной GitHub учетной записи.                                                 |\n| `COPILOT_GH_ACCOUNT_*`   | Маркеры для каждой учетной записи, вошедшего в систему, включая выбранную учетную запись. |\n\nДля каждой `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`.\n\n## Устаревшая совместимость\n\nДля обратной совместимости приложение по-прежнему может проанализировать старую фигуру на основе `scripts` объектов:\n\n```yaml copy\nscripts:\n  setup: bun install\n  run: bun run dev\n  archive: rm -rf node_modules\n```\n\nВ этой устаревшей форме:\n\n* `setup` сопоставляется с скриптом с триггером создания.\n* `archive` сопоставляется с скриптом с триггером архива.\n* `run` сопоставляется с записями скриптов `{ name, command }` вручную и может быть одной командной строкой или списком объектов."}