{"meta":{"title":"Настройка GitHub Copilot CLI","intro":"Настройте доверенные каталоги, доступ к инструментам, а также права на пути и URL Copilot CLI","product":"GitHub Copilot","breadcrumbs":[{"href":"/ru/copilot","title":"GitHub Copilot"},{"href":"/ru/copilot/how-tos","title":"Инструкции"},{"href":"/ru/copilot/how-tos/copilot-cli","title":"Copilot CLI"},{"href":"/ru/copilot/how-tos/copilot-cli/set-up-copilot-cli","title":"Создание Copilot CLI"},{"href":"/ru/copilot/how-tos/copilot-cli/set-up-copilot-cli/configure-copilot-cli","title":"Настройте Copilot CLI"}],"documentType":"article"},"body":"# Настройка GitHub Copilot CLI\n\nНастройте доверенные каталоги, доступ к инструментам, а также права на пути и URL Copilot CLI\n\n## Введение\n\nCopilot CLI Имеет несколько опций конфигурации, которые управляют, к чему он может получить доступ и делать от вашего имени.\n\nВ этой статье показано, как настраивать доверенные каталоги, настраивать доступ к инструментам и предоставлять права на пути и URL-адресы файлов.\n\n### Предпосылки\n\n* Установите Copilot CLI. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli).\n\n## Установка доверенных каталогов\n\nДоверенные каталоги контролируют, где Copilot CLI можно читать, изменять и выполнять файлы. Доверие к каталогу имеет последствия для безопасности, см. [Вопросы безопасности](/ru/copilot/concepts/agents/copilot-cli/about-copilot-cli#security-considerations).\n\n### Выбор доверия каталогу\n\nКогда вы начинаете GitHub Copilot CLI сессию, вас попросят подтвердить, что вы доверяете файлам в каталоге, из которого вы запустили CLI.\n\nВы можете доверять текущему каталогу:\n\n* Только запущенный сеанс\n* Эти и будущие сеансы\n\nЕсли вы решили доверять каталогу для будущих сеансов, запрос доверенного каталога не будет отображаться снова. Второй вариант стоит выбрать только если вы уверены, что это место всегда будет безопасным для Copilot работы.\n\n### Редактирование доверенных каталогов\n\nВы можете редактировать список постоянно надёжных каталогов. Доверенные каталоги хранятся в автоматически управляемом `config.json` файле.\n\n1. Откройте `config.json` файл CLI. По умолчанию он хранится в `.copilot` папке в вашей домашней директории:\n\n   * **macOS/Linux**: `~/.copilot/config.json`\n   * **Windows**:`$HOME\\.copilot\\config.json`\n\nВы можете изменить расположение конфигурации, установив `COPILOT_HOME` переменную окружения. Это изменится `~/.copilot/` , и `$HOME\\.copilot\\` в описанных выше путях.\n\n1. Отредактировать содержимое `trustedFolders` массива.\n\n## Настройка разрешённых инструментов\n\nВы можете управлять, какие инструменты Copilot CLI могут использовать, либо отвечая на запросы одобрения при Copilot попытке использовать инструмент, либо указывая права через флаги командной строки.\n\nИмейте в виду, что разрешение доступа инструментам имеет последствия для безопасности, см. [вопросы безопасности](/ru/copilot/concepts/agents/copilot-cli/about-copilot-cli#security-considerations).\n\nВ этом разделе вы можете узнать, как:\n\n* [Разрешите инструмент впервые](#allowing-a-tool-for-the-first-time)\n* [Разрешить использование инструментов без ручного одобрения](#allowing-tools-to-be-used-without-manual-approval)\n* [Укажите, какой инструмент вы хотите разрешить или отклонить](#specifying-which-tool-you-want-to-allow-or-deny)\n* [Разрешайте одни инструменты, но запрещайте другие](#allowing-some-tools-while-denying-others)\n* [Ограничение доступных инструментов](#limiting-available-tools)\n\n### Впервые разрешить инструмент\n\nВ первый раз Copilot , когда вам нужно использовать инструмент, который может требовать одобрения —например, , `touch`, `chmod``node`или`sed` он спросит вас, хотите ли вы позволить ему работать. Вопрос о том, будет ли вам подсказка, зависит от инструмента и того, как он используется (например, приведённые аргументы или одобрен ли инструмент ранее).\n\n1. Подскажите Copilot выполнить задачу, требующую инструмента. Рассмотрим пример.\n\n   ```shell\n   copilot -p \"Create a new file called README.md with a project description\"\n   ```\n\n2. Выберите один из трёх вариантов:\n\n   * `1. Yes`\n\n     Выберите эту опцию, чтобы разрешить Copilot выполнить именно эту команду, только на этот раз. В следующий раз, когда он должен использовать этот инструмент, он попросит вас снова.\n\n   * `2. Yes, and approve TOOL for the rest of the running session`\n\n     Выберите эту опцию, чтобы разрешить Copilot использовать этот инструмент на время текущей сессии. Он будет запрашивать ваше утверждение еще раз в новых сеансах или, если вы возобновляете текущий сеанс в будущем. Если вы выберете этот вариант, вы позволяете Copilot использовать этот инструмент так, как считаете нужным.\n\n     Например, если Copilot просит разрешить запуск команды `rm ./this-file.txt`, и вы выбираете вариант 2, то Copilot можете выполнить любую `rm` команду (например, `rm -rf ./*`) в текущем запуске этой сессии без вашего одобрения.\n\n   * `3. No, and tell Copilot what to do differently (Esc)`\n\n     Выберите этот вариант, чтобы отменить предложенную команду и попросить Copilot попробовать другой подход.\n\n### Разрешение использования средств без утверждения вручную\n\nВы можете использовать флаги командной строки, чтобы обозначить инструменты, которые Copilot можно использовать без вашего одобрения.\n\n#### Разрешение всех инструментов\n\nИспользуйте `--allow-all-tools` его, чтобы разрешить Copilot использовать любой инструмент без вашего одобрения.\n\n* Рассмотрим пример.\n\n  ```shell\n  copilot -p \"Revert the last commit\" --allow-all-tools\n  ```\n\n#### Отказ от инструмента\n\nИспользуйте `--deny-tool` для предотвращения Copilot использования конкретного инструмента.\n\n* Рассмотрим пример.\n\n  ```shell\n  copilot --deny-tool='shell(git push)'\n  ```\n\nЭтот параметр имеет приоритет над параметрами и `--allow-all-tools` параметрами`--allow-tool`.\n\n#### Разрешение инструмента\n\nИспользуйте `--allow-tool` возможность Copilot использовать конкретный инструмент без вашего одобрения.\n\n* Рассмотрим пример.\n\n  ```shell\n  copilot --allow-tool='shell'\n  ```\n\n### Указание, какой инструмент вы хотите разрешить или отклонить\n\nЧтобы использовать опции `--deny-tool` and `--allow-tool` , нужно указать, какой тип инструмента вы хотите разрешить или запретить:\n\n* [Команды оболочки](#allowing-or-denying-shell-commands)\n* [Инструменты «Write»](#allowing-or-denying-write-tools)\n* [Инструменты серверов MCP](#allowing-or-denying-mcp-server-tools)\n\n#### Разрешение или отклонение команд shell\n\nИспользуйте `shell(COMMAND)` для разрешения или отклонения конкретной команды shell.\n\n* Например, чтобы предотвратить Copilot использование любой `rm` команды, используйте следующее:\n\n  ```shell\n  copilot --deny-tool='shell(rm)'\n  ```\n\nДля `git` и `gh` команд укажите конкретную подкоманду первого уровня для разрешения или отказа.\n\n* Например, чтобы предотвратить Copilot использование `git push`, используйте:\n\n  ```shell\n  copilot --deny-tool='shell(git push)'\n  ```\n\nСпецификация инструмента является необязательной. Например, `copilot --allow-tool='shell'` позволяет Copilot использовать любую команду shell без индивидуального одобрения.\n\n#### Разрешение или отказ `'write'` инструментов\n\nИспользуйте `'write'` для разрешения или отказа инструментам — кроме команд shell — разрешение на изменение файлов.\n\n* Например, чтобы разрешить Copilot редактировать файлы без вашего индивидуального одобрения, используйте следующее:\n\n  ```shell\n  copilot --allow-tool='write'\n  ```\n\n#### Разрешение или отказ в MCP-серверных инструментах\n\nИспользуйте `'MCP_SERVER_NAME'` для разрешения или отклонения конкретного инструмента от указанного сервера MCP.\n\n* Например, чтобы предотвратить Copilot использование инструмента, вызванного `tool_name` с сервера MCP, `My-MCP-Server`используйте следующее:\n\n  ```shell\n  copilot --deny-tool='My-MCP-Server(tool_name)'\n  ```\n\n`MCP_SERVER_NAME` это название MCP-сервера, который вы настроили.\n\nСредства с сервера указываются в скобках, используя имя средства, зарегистрированного на сервере MCP.\n\nИспользование имени сервера без указания средства разрешает или запрещает все средства с этого сервера.\n\nВы можете найти имя сервера MCP, войдя `/mcp` в интерактивный режим и Copilot CLI выбрав сервер из отображаемого списка.\n\n### Разрешая одни инструменты, но отказывая другим\n\nЧтобы точно определить, какие инструменты Copilot можно использовать без вашего одобрения, вы можете использовать комбинацию вариантов одобрения. Рассмотрим пример.\n\n* Чтобы предотвратить Copilot использование `rm` команд и `git push` при автоматическом разрешении всех остальных инструментов, используйте следующее:\n\n  ```shell\n  copilot --allow-all-tools --deny-tool='shell(rm)' --deny-tool='shell(git push)'\n  ```\n\n* Чтобы предотвратить Copilot использование инструмента `tool_name` с MCP-сервера с именем `My-MCP-Server`, но позволить всем другим инструментам с этого сервера использовать без индивидуального одобрения, используйте следующее:\n\n  ```shell\n  copilot --allow-tool='My-MCP-Server' --deny-tool='My-MCP-Server(tool_name)'\n  ```\n\n### Ограничение доступных инструментов\n\nЧтобы ограничиться Copilot определённым набором инструментов, используйте `--available-tools`.\n\nИнструменты, не включённые в этот список, не будут доступны для Copilot.\n\n## Установка разрешений на пути\n\nПрава на пути определяют, к каким каталогам и файлам Copilot могут обращаться.\n\nПо умолчанию Copilot CLI можно получить доступ к текущему рабочему каталогу, её подкаталогам и системному временному каталогу.\n\nРазрешения на пути применяются к командам shell, операциям с файлами (создание, редактирование, просмотр) и инструменты поиска (например `grep` , шаблоны и шаблоны глобов). Для команд shell пути эвристически извлекаются путём токенизации текста команд и идентификации токенов, похожих на пути.\n\n> \\[!WARNING]\n> Обнаружение пути для команд shell имеет ограничения:\n>\n> * Пути, встроенные в сложные конструкции оболочек, могут не быть обнаружены.\n> * Разворачивается только определённый набор переменных среды (`HOME`, `TMPDIR`, `PWD`, и подобное). Пользовательские переменные, такие `$MY_PROJECT_DIR` как не расширяются и могут быть некорректно проверены.\n> * Символические ссылки разрешаются для существующих файлов, но не для создаваемых файлов.\n\n### Обеспечение доступа ко всем путям\n\nЧтобы отключить проверку пути и получить доступ к любому пути, используйте `--allow-all-paths` флаг при запуске Copilot CLI.\n\n### Запрет доступа к временному каталогу\n\nЧтобы запретить доступ к временной директории, используйте `--disallow-temp-dir`.\n\n## Настройка разрешений URL\n\nПрава на URL управляют, к какому доступу могут получить Copilot внешние URL. По умолчанию все URL-адреса требуют одобрения перед предоставлением доступа.\n\nПрава на URL применяются к `web_fetch` инструменту и кураторскому списку команд shell, которые обращаются к сети (например `curl`, , `wget`, и `fetch`). Для команд shell URL извлекаются с помощью шаблонов regex.\n\n> \\[!WARNING]\n> Обнаружение URL для команд shell имеет ограничения:\n>\n> * URL-адреса в содержимом файлов, конфигурационных файлах или переменных среды, прочитанных командами, не обнаруживаются.\n> * Обфусцированные URL (такие как разделённые строки или escape-последовательности) могут не быть обнаружены.\n> * HTTP и HTTPS рассматриваются как разные протоколы и требуют отдельного одобрения.\n\nПрава на URL могут сохраняться на всю сессию или навсегда.\n\n### Отключение проверки URL\n\nЧтобы отключить проверку URL, используйте флаг.`--allow-all-urls`\n\n### Предварительное одобрение конкретных доменов\n\nДля предварительного одобрения конкретных доменов используйте `--allow-url=DOMAIN`.\n\n* Например: `--allow-url=github.com`.\n\n### Отрицание конкретных доменов\n\nЧтобы отклонить конкретные домены, используйте `--deny-url=DOMAIN`.\n\n* Например: `--deny-url=github.com`.\n\n## Разрешение всех инструментов, путей и URL\n\nЧтобы разрешить все инструменты, пути и URL-адреса, используйте `--allow-all`, или его псевдоним, `--yolo`.\n\nЭтот флаг объединяет:\n\n* `--allow-all-tools` (пропуск одобрения инструмента).\n* `--allow-all-paths` (отключить проверку пути).\n* `--allow-all-urls` (отключает проверку URL).\n\nВо время интерактивной сессии вы также можете включить все права с помощью `/allow-all` команд или `/yolo` slash.\n\n> \\[!NOTE] Если у вас есть лицензия OR Copilot BusinessCopilot Enterprise , эти команды могут быть заблокированы корпоративным администратором.\n\n## Ограничение доступа к файлам\n\nРазличные `--allow-all...` параметры позволяют решить, разрешать Copilot ли доступ к отдельным средствам, файлам и URL-адресам. Однако использование их расширяет область Copilot выполнения действий, которые могут не потребоваться, например изменение файлов за пределами репозитория, в который вы работаете.\n\nЧтобы устранить этот риск, вы можете указать ИНТЕРФЕЙС командной строки песочнице свои команды (локальную песочницу) или запустить весь Copilot CLI сеанс в удаленной изолированной среде (облачной песочнице). Дополнительные сведения см. в разделе [Сведения об облачных и локальных песочницах для GitHub Copilot](/ru/copilot/concepts/about-cloud-and-local-sandboxes).\n\n## Дополнительные материалы\n\n* [Настройка GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli/customize-copilot)\n* [Каталог конфигурации CLI GitHub Copilot](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference)"}