{"meta":{"title":"Разрешение и отказ в использовании инструментов","intro":"Контролируйте, какие инструменты 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/use-copilot-cli","title":"Использование Copilot CLI"},{"href":"/ru/copilot/how-tos/copilot-cli/use-copilot-cli/allowing-tools","title":"Разрешённые инструменты"}],"documentType":"article"},"body":"# Разрешение и отказ в использовании инструментов\n\nКонтролируйте, какие инструменты Copilot CLI можно использовать, чтобы избежать нежелательных изменений.\n\n## Введение\n\nCopilot CLI использует различные инструменты для выполнения ваших задач. Он может выполнять команды shell, читать и записывать файлы, искать вашу кодовую базу, загружать веб-контент и делегировать задачи специализированным субагентам.\n\nХотя операции только для чтения, такие как поиск, чтение файлов и выполнение команд shell-only, разрешены автоматически, инструменты, способные изменять вашу систему — такие как запуск разрушительных команд shell, редактирование файлов или доступ к URL — требуют вашего явного одобрения, прежде Copilot чем смогут их использовать. Это помогает избежать того, чтобы использование CLI не привело к изменениям, которые вы не планировали, потому что, например, команда shell может делать всё, что может ваш аккаунт: устанавливать пакеты, удалять файлы, отправлять push-код или делать сетевые запросы.\n\nВы можете разрешить или отклонить разрешения для инструментов как при запуске CLI, так и во время интерактивной сессии. Если вы не дали разрешения до начала сессии, Copilot CLI он будет каждый раз, когда нужно выполнить потенциально разрушительное действие, будет просить вас о разрешении. Вы можете разрешить использовать этот инструмент один раз или на оставшуюся часть сессии.\n\n## Сохраненные права\n\nНекоторые параметры запроса сохраняют свое согласие, чтобы вы не спросили снова. Место хранения утверждения зависит от того, что вы одобрили.\n\nПри утверждении средства для текущего расположения утверждение сохраняется `permissions-config.json` в каталоге конфигурации. По умолчанию этот файл имеет значение `~/.copilot/permissions-config.json`. Например, вы можете выбрать \"не спрашивать снова в этом репозитории\" (или \"в этом каталоге\") для команды оболочки, записи файлов, средства MCP или обновления памяти. Утверждение распространяется на текущее расположение: корневой каталог репозитория Git или рабочий каталог, если вы не входите в репозиторий. Все каталоги, которым вы предоставляете доступ, сохраняются в одном файле.\n\nУтверждения URL-адресов работают по-другому. При окончательном утверждении URL-адреса его домен добавляется в `allowedUrls` список.`settings.json` По умолчанию этот файл имеет значение `~/.copilot/settings.json`. Это утверждение применяется ко всем сеансам, а не привязано к одному расположению.\n\nКомандные опции, такие `--allow-tool` как и `--deny-tool` , применяются только к текущей сессии и не записываются в `permissions-config.json`. Правила отказа по-прежнему имеют приоритет над сохранёнными одобрениями.\n\nПодробности о том, где хранятся сохранённые одобрения, как сопоставлены локации и полную `permissions-config.json` схему, смотрите [Каталог конфигурации CLI GitHub Copilot](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference#permissions-configjson).\n\n## Слои управления инструментами\n\nЕсть два уровня управления, которые можно использовать при указании разрешений инструментов в командной строке. Вы можете:\n\n* Ограничьте выбор инструментов, доступных для модели ИИ.\n* Разрешать или отказывать в разрешении для определённых инструментов.\n\n## Ограничение выбора инструментов, доступных модели ИИ\n\nОпции `--available-tools` и `--excluded-tools` ограничивают набор инструментов, о которых знает модель ИИ, и поэтому может выбирать, когда определяет, как выполнить задачу.\n\n* `--available-tools` Отключает все инструменты, кроме указанных вами инструментов.\n* `--excluded-tools` отключает только указанные инструменты.\n\nЕсли использовать оба варианта одновременно, CLI применит список разрешений, указанный в , `--available-tools` и проигнорирует список отказов, указанный .`--excluded-tools`\n\nЕсли инструмент отсутствует в доступном наборе, AI-модель вообще не сможет его использовать, даже если вы укажете это с `--allow-tool` помощью этой опции. В интерактивной сессии, где вы не указываете доступный набор инструментов, AI-модель может попытаться использовать инструмент, но получит отказ. Опции `--available-tools` и `--excluded-tools` не позволяют вам тратить время на взаимодействие с моделью таким образом.\n\n### Пример варианта использования\n\nВы начинаете сессию CLI для бенчмаркинга вашего проекта и хотите избежать попыток использования веб-поиска со стороны модели ИИ.\n\n```bash\ncopilot --excluded-tools='web_fetch, web_search'\n```\n\n> \\[!NOTE]\n> Полная информация о синтаксисе этих и других командных опций, упомянутых в этой статье, см. [Справочник команды GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options).\n\n## Разрешение или отказ в разрешении для определённых инструментов\n\nОпции и `--allow-tool` позволяют `--deny-tool` или отказывают в разрешении на конкретные инструменты или подкоманды инструментов.\n\nЗначение каждого из этих вариантов — это список типов инструментов с разделёнными запятами, который по желанию может указывать точные инструменты и шаблоны подкоманд.\n\nЕсли вы указываете инструмент с `--allow-tool`, AI-модель может выбрать использование этого инструмента без запроса разрешения. Если вы указываете инструмент с `--deny-tool`, AI-модель вообще не может использовать этот инструмент, даже если он будет лучшим выбором для выполнения задачи.\n\nПравила отказа всегда имеют приоритет над правилами разрешения, даже если `--allow-all` они установлены или соответствующее одобрение сохранено в `permissions-config.json`.\n\n### Примеры\n\n| Опция                                                                                                                                                      | Эффект                                                                           |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |\n| `--allow-tool=shell`                                                                                                                                       | Разрешить все команды shell.                                                     |\n| `--allow-tool='shell(git commit)'`                                                                                                                         | Разрешите `git commit` команду.                                                  |\n| `--allow-tool='shell(git:*)' --deny-tool='shell(git push)'`                                                                                                | Разрешить все `git` команды, кроме `git push`.                                   |\n| `--deny-tool=write`                                                                                                                                        | Запретить все операции по записи файлов.                                         |\n| `--allow-tool='read, write(.github/copilot-instructions.md)'`                                                                                              | Разрешить все операции чтения и разрешить операции записи для конкретного файла. |\n| `--allow-tool='MyMCP(create_issue), MyMCP(delete_issue)'`                                                                                                  | Разрешите и `create_issue``delete_issue` инструменты с `MyMCP` сервера MCP.      |\n| `--available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)'`                                                   | Комбинируйте оба уровня управления для ограниченной сессии CLI.                  |\n| Copilot Можно исследовать код, вносить правки и коммитировать, но не может выйти в интернет, запускать произвольные субагенты или запускать в историю Git. |                                                                                  |\n\nДля подробностей поддерживаемых типов инструментов см. [Справочник команды GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-command-reference#tool-permission-patterns).\n\n## Разрешительные варианты\n\nСледующие параметры командной строки дают Copilot CLI разрешение использовать все доступные инструменты.\n\nЕсли у вас есть лицензия OR Copilot BusinessCopilot Enterprise , эти команды могут быть заблокированы корпоративным администратором.\n\nПрежде чем предоставлять Copilot расширенные разрешения с помощью параметра allow-all, рассмотрите возможность использования локальной песочницы или запуска сеанса в облачной песочнице, чтобы ограничить Copilot доступ. Дополнительные сведения см. в разделе [Сведения об облачных и локальных песочницах для GitHub Copilot](/ru/copilot/concepts/about-cloud-and-local-sandboxes).\n\n* `--allow-all-tools` — Полный доступ к доступным инструментам.\n\n* `--allow-all`  или `--yolo` — Эквивалентно использованию всех `--allow-all-tools`, `--allow-all-paths`, и `--allow-all-urls` опций при запуске CLI.\n\n  В интерактивной сессии вы можете использовать `/allow-all` команды OR `/yolo` , чтобы разрешить все инструменты без необходимости перезапускать сессию.\n\n> \\[!CAUTION]\n> Настоятельно рекомендуется использовать эти варианты только в изолированных условиях. Никогда не используйте псевдоним для применения одной из этих опций при каждом старте Copilot CLI, так как это позволит Copilot использовать любой инструмент без вашего явного разрешения каждый раз при использовании CLI, что может привести к непредвиденным последствиям.\n\n## Сброс разрешений\n\n`/reset-allowed-tools` Команда слэш отменяет все разрешения, предоставленные вами во время текущей интерактивной сессии. Это относится одинаково к разрешениям, которые вы предоставили, отвечая на подсказки, и к использованию `/allow-all` команд OR `/yolo` .\n\nИспользование `/reset-allowed-tools` сбрасывает разрешения по умолчанию или в состояние, определённое любыми параметрами командной строки, которую вы использовали при запуске Copilot CLI. Также он очищает сохраненные одобрения инструментов для текущего местоположения из `permissions-config.json`. Например, если вы начинаете интерактивную Copilot CLI сессию с опцией `--allow-tool='shell(git:*)'`, а затем разрешаете или отклоняете дальнейшие права во время сессии, отвечая на запросы, то при использовании `/reset-allowed-tools` команды разрешения CLI возвращаются в исходное `--allow-tool='shell(git:*)'` состояние, без других разрешений или отказа. По мере продолжения работы в сессии вам снова будут приглашаться, если Copilot потребуется дополнительные разрешения.\n\nЧтобы удалить сохранённые одобрения для другого места, отредактируйте или удалите соответствующую запись о местоположении в `permissions-config.json`. Дополнительные сведения см. в разделе [Каталог конфигурации CLI GitHub Copilot](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference#permissions-configjson).\n\n## Дополнительные материалы\n\n* [Лучшие практики для GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli/cli-best-practices#configure-allowed-tools)\n* [Справочник команды GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-command-reference)\n* [Каталог конфигурации CLI GitHub Copilot](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference#permissions-configjson)"}