Введение
Интерфейс командной строки Copilot имеет несколько настроек, которые контролируют доступ и действия от вашего имени.
В этой статье показано, как настраивать доверенные каталоги, настраивать доступ к инструментам и предоставлять права на пути и URL-адресы файлов.
Предпосылки
- Установите Интерфейс командной строки Copilot. См . раздел AUTOTITLE.
Установка доверенных каталогов
Доверенные каталоги управляют, где Интерфейс командной строки Copilot может читать, изменять и выполнять файлы. Доверие к каталогу имеет последствия для безопасности, см. Вопросы безопасности.
Выбор доверия каталогу
При запуске сеанса GitHub Copilot CLI вам будет предложено подтвердить, что вы доверяете файлам и ниже каталог, из которого вы запустили CLI.
Вы можете доверять текущему каталогу:
- Только запущенный сеанс
- Эти и будущие сеансы
Если вы решили доверять каталогу для будущих сеансов, запрос доверенного каталога не будет отображаться снова. Этот второй вариант следует выбрать, только если вы уверены, что это расположение всегда будет безопасным местом для работы Copilot.
Редактирование доверенных каталогов
Вы можете редактировать список постоянно надёжных каталогов.
- Откройте
config.jsonфайл CLI. По умолчанию он хранится в.copilotпапке в вашей домашней директории: * macOS/Linux:~/.copilot/config.json* Окна:$HOME\.copilot\config.json
Вы можете изменить местоположение конфигурации, установив XDG_CONFIG_HOME переменную среды (в основном на macOS/Linux).
- Отредактировать содержимое
trusted_foldersмассива.
Настройка разрешённых инструментов
Вы можете контролировать, какие инструменты Интерфейс командной строки Copilot может использовать, либо отвечая на запросы одобрения, когда Copilot пытается использовать инструмент, либо указывая права с помощью флагов командной строки.
Имейте в виду, что разрешение доступа инструментам имеет последствия для безопасности, см. вопросы безопасности.
В этом разделе вы можете узнать, как:
-
[Разрешите инструмент впервые](#allowing-a-tool-for-the-first-time) -
[Разрешить использование инструментов без ручного одобрения](#allowing-tools-to-be-used-without-manual-approval) -
[Укажите, какой инструмент вы хотите разрешить или отклонить](#specifying-which-tool-you-want-to-allow-or-deny) -
[Разрешайте одни инструменты, но запрещайте другие](#allowing-some-tools-while-denying-others) -
[Ограничение доступных инструментов](#limiting-available-tools)
Впервые разрешить инструмент
В первый раз, когда Copilot должен использовать инструмент, который может потребовать одобрения — например, например, , touch, chmod``nodeилиsed — он спросит, хотите ли вы разрешить ему работать. Вопрос о том, будет ли вам подсказка, зависит от инструмента и того, как он используется (например, приведённые аргументы или одобрен ли инструмент ранее).
-
Запросить Copilot для выполнения задачи, требующей инструмента. Рассмотрим пример.
copilot -p "Create a new file called README.md with a project description" -
Выберите один из трёх вариантов:
-
1. YesВыберите эту опцию, чтобы позволить Copilot выполнить именно эту команду, только на этот раз. В следующий раз, когда он должен использовать этот инструмент, он попросит вас снова.
-
2. Yes, and approve TOOL for the rest of the running sessionВыберите эту опцию, чтобы разрешить Copilot использовать этот инструмент на время текущей сессии. Он будет запрашивать ваше утверждение еще раз в новых сеансах или, если вы возобновляете текущий сеанс в будуще��. Если выбрать этот параметр, то вы разрешаете Copilot использовать этот инструмент в любом случае, если он считает, что подходит.
Например, если Copilot запрашивает разрешение на выполнение команды, и вы выбираете вариант 2, то Copilot может выполнять любую
rm ./this-file.txtкомандуrm(например,rm -rf ./*) во время текущего выполнения этого сеанса, не запрашивая утверждение. -
3. No, and tell Copilot what to do differently (Esc)Выберите этот вариант, чтобы отменить предложенную команду и инструктировать Copilot попробовать другой подход.
-
Разрешение использования средств без утверждения вручную
Вы можете использовать флаги командной строки, чтобы обозначить инструменты, которые Copilot может использовать без вашего одобрения.
Разрешение всех инструментов
Используйте --allow-all-tools это, чтобы позволить Copilot использовать любой инструмент без вашего одобрения.
-
Рассмотрим пример.
copilot -p "Revert the last commit" --allow-all-tools
Отказ от инструмента
Используйте --deny-tool для предотвращения Copilot использования конкретного инструмента.
-
Рассмотрим пример.
copilot --deny-tool 'shell(git push)'
Этот параметр имеет приоритет над параметрами и --allow-all-tools параметрами--allow-tool.
Разрешение инструмента
Используйте --allow-tool для того, чтобы Copilot использовать конкретный инструмент без вашего одобрения.
-
Рассмотрим пример.
copilot --allow-tool 'shell'
Указание, какой инструмент вы хотите разрешить или отклонить
Чтобы использовать опции --deny-tool and --allow-tool , нужно указать, какой тип инструмента вы хотите разрешить или запретить:
-
[Команды оболочки](#allowing-or-denying-shell-commands) -
[Инструменты «Write»](#allowing-or-denying-write-tools) -
[Инструменты серверов MCP](#allowing-or-denying-mcp-server-tools)
Разрешение или отклонение команд shell
Используйте shell(COMMAND) для разрешения или отклонения конкретной команды shell.
-
Например, чтобы предотвратить использование Copilot любой
rmкоманды, используйте:copilot --deny-tool 'shell(rm)'
Для git и gh команд укажите конкретную подкоманду первого уровня для разрешения или отказа.
-
Например, чтобы предотвратить использование
git pushCopilot , используйте:copilot --deny-tool 'shell(git push)'
Спецификация инструмента является необязательной. Например, copilot --allow-tool 'shell' позволяет Copilot использовать любую команду оболочки без отдельного утверждения.
Разрешение или отказ 'write' инструментов
Используйте 'write' для разрешения или отказа инструментам — кроме команд shell — разрешение на изменение файлов.
-
Например, чтобы разрешить Copilot редактировать файлы без вашего индивидуального согласия, используйте следующее:
copilot --allow-tool 'write'
Разрешение или отказ в MCP-серверных инструментах
Используйте 'MCP_SERVER_NAME' для разрешения или отклонения конкретного инструмента от указанного сервера MCP.
-
Например, чтобы предотвратить использование Copilot инструмента, вызванного
tool_nameс MCP-сервераMy-MCP-Server, использовай:copilot --deny-tool 'My-MCP-Server(tool_name)'`MCP_SERVER_NAME` это название MCP-сервера, который вы настроили.
Средства с сервера указываются в скобках, используя имя средства, зарегистрированного на сервере MCP.
Использование имени сервера без указания средства разрешает или запрещает все средства с этого сервера.
Имя сервера MCP можно найти, введя /mcp интерактивный режим Интерфейс командной строки Copilot и выбрав сервер из отображаемого списка.
Разрешая одни инструменты, но отказывая другим
Чтобы точно определить, какие инструменты Copilot можно использовать без запроса вашего одобрения, вы можете использовать комбинацию вариантов одобрения. Рассмотрим пример.
-
Чтобы не допустить {
rm% данных variables.product.prodname_copilot_short %} команд иgit pushпри автоматическом разрешении всех остальных инструментов, используйте следующие функции:copilot --allow-all-tools --deny-tool 'shell(rm)' --deny-tool 'shell(git push)' -
Чтобы предотвратить использование Copilot с помощью средства
tool_nameс именованногоMy-MCP-Serverсервера MCP, но разрешить использовать все другие средства с этого сервера без отдельного утверждения, используйте следующее:copilot --allow-tool 'My-MCP-Server' --deny-tool 'My-MCP-Server(tool_name)'
Ограничение доступных инструментов
Чтобы ограничить Copilot определённым набором инструментов, используйте --available-tools.
Инструменты, не включённые в этот список, не будут доступны для Copilot.
Установка разрешений на пути
Разрешения на пути определяют, к какому каталогу и файлам Copilot могут обращаться.
По умолчанию Интерфейс командной строки Copilot может получить доступ к текущему рабочему каталогу, её подкаталогам и временному директорию системы.
Разрешения на пути применяются к командам shell, операциям с файлами (создание, редактирование, просмотр) и инструменты поиска (например grep , шаблоны и шаблоны глобов). Для команд shell пути эвристически извлекаются путём токенизации текста команд и идентификации токенов, похожих на пути.
Предупреждение
Обнаружение пути для команд shell имеет ограничения:
- Пути, встроенные в сложные конструкции оболочек, могут не быть обнаружены.
- Разворачивается только определённый набор переменных среды (
HOME,TMPDIR,PWD, и подобное). Пользовательские переменные, такие$MY_PROJECT_DIRкак не расширяются и могут быть некорректно проверены. - Символические ссылки разрешаются для существующих файлов, но не для создаваемых файлов.
Обеспечение доступа ко всем путям
Чтобы отключить проверку пути и разрешить доступ к любому пути, используйте --allow-all-paths флаг при запуске Интерфейс командной строки Copilot.
Запрет доступа к временному каталогу
Чтобы запретить доступ к временной директории, используйте --disallow-temp-dir.
Настройка разрешений URL
Права на URL управляют, к каким внешним URL Copilot может получить доступ. По умолчанию все URL-адреса требуют одобрения перед предоставлением доступа.
Права на URL применяются к web_fetch инструменту и кураторскому списку команд shell, которые обращаются к сети (например curl, , wget, и fetch). Для команд shell URL извлекаются с помощью шаблонов regex.
Предупреждение
Обнаружение URL для команд shell имеет ограничения:
- URL-адреса в содержимом файлов, конфигурационных файлах или переменных среды, прочитанных командами, не обнаруживаются.
- Обфусцированные URL (такие как ��азделённые строки или escape-последовательности) могут не быть обнаружены.
- HTTP и HTTPS рассматриваются как разные протоколы и требуют отдельного одобрения.
Права на URL могут сохраняться на всю сессию или навсегда.
Отключение проверки URL
Чтобы отключить проверку URL, используйте флаг.--allow-all-urls
Предварительное одобрение конкретных доменов
Для предварительного одобрения конкретных доменов используйте --allow-url <domain>.
- Например:
--allow-url github.com.
Отрицание конкретных доменов
Чтобы отклонить конкретные домены, используйте --deny-url <domain>.
- Например:
--deny-url github.com.
Разрешение всех инструментов, путей и URL
Чтобы разрешить все инструменты, пути и URL-адреса, используйте --allow-all, или его псевдоним, --yolo.
Этот флаг объединяет:
*
--allow-all-tools (пропуск одобрения инструмента).
*
--allow-all-paths (отключить проверку пути).
*
--allow-all-urls (отключает проверку URL).
Совет
Во время интерактивной сессии вы также можете включить все права с помощью /allow-all команд или /yolo slash.
Дальнейшие шаги
-
[AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot)