Introduction
При Copilot работе с задачей часто требуется выполнить действия, которые могут изменить систему, такие как выполнение команд оболочки, редактирование файлов или доступ к URL-адресам. Вы можете выбрать способ обработки запросов разрешений для этих действий.
Ответы на запросы на утверждение позволяют контролировать работу, но это может замедлить работу, особенно в начале сеанса, когда Copilot необходимо установить, какие действия разрешено предпринять. Чтобы уменьшить количество запросов, вы можете предоставить Copilot безусловные разрешения, но это позволяет удалить надзор за отдельными действиями.
Assisted permissions — это средний центр между утверждением вручную и предоставлением широких разрешений с параметром allow-all. Она использует большую языковую модель для просмотра запросов на разрешения и автоматического утверждения действий, которые он выполняет судьи в контексте задачи. В стандартном интерактивном сеансе запросы, которые по-прежнему требуют утверждения, помещаются к вам.
Примечание.
Assisted permissions доступен в GitHub Copilot CLI, Visual Studio Codeи GitHub Copilot app.
Параметры утверждения
Вы можете выбрать один из трех вариантов, определяющих, сколько вы хотите участвовать в утверждении Copilot действий. Существующие правила запрета и ограничения предприятия по-прежнему применяются. Запросы, которые уже разрешены вашими разрешениями, могут выполняться без запроса или проверки модели.
-
**Утверждение вручную:**Copilot запрашивает утверждение, если действие еще не разрешено, например выполнение команды, которая не доступна только для чтения, редактирования файла или доступа к URL-адресу. Вы можете утвердить действие один раз или для остальной части сеанса. Это дает вам самый надзор, но требует, чтобы вы ответили на самые запросы.
-
**Assisted permissions:**Copilot использует модель для оценки подходящих запросов на разрешения и автоматически утверждает, что судьи должны быть безопасными. Вам будет предложено, когда запрос по-прежнему нуждается в утверждении. Это уменьшает запросы без предоставления одеялого разрешения на выполнение команд.
-
**Безусловное утверждение:**Copilot имеет широкое разрешение на использование средств, путей и URL-адресов без проверки безопасности модели или отдельных запросов на утверждение. Это самый распространенный вариант и удаляет ваш надзор за отдельными действиями. Это поведение Copilot CLI при использовании
--allow-allпараметра командной строки (или--yolo) или/permissions allow-all``/yoloкоманды косой черты.
Администратор может отключить безусловное утверждение без permissions.disableBypassPermissionsMode: "disable" отключения assisted permissions.
permissions.disableAssistedPermissionsMode: true Отдельный параметр отключаетassisted permissions. Дополнительные сведения см. в разделе Управляемые корпоративными настройками.
Как работает assisted permissions
При включении assisted permissionsсуществующие правила и утверждения человека оцениваются перед проверкой модели. Для допустимых запросов, которые еще не разрешены , независимо от того, следует ли выполнять команду, получить путь или получить URL-адрес, модель оценивает, является ли действие безопасным и в пределах предоставленного вами центра выполнения задачи.
В Copilot CLI, корпоративные ask правила для команд оболочки, чтения файлов, записи файлов и URL-адреса могут быть удовлетворены утверждением модели, когда запрос имеет право на проверку. Это означает, что эти правила не всегда приводят к запросу на подтверждение. Правила запрета предприятия по-прежнему применяются.
Assisted permissions не проверяет другие вызовы инструментов, которые требуют утверждения корпоративных правил или запросов для обхода локальной песочницы. Эти запросы остаются под обычной обработкой разрешений сеанса.
Для запросов, которые он может проверить, модель делает рекомендацию:
- Если модель уверена, что запрос является безопасным, Copilot утверждает его автоматически и продолжается без запроса.
- Если модель не уверена, что запрос является безопасным, Copilot запрашивает утверждение, так как это было бы с утверждением вручную.
Если проверка безопасности недоступна или не может оценить запрос, запрос следует обычной обработке разрешений сеанса.
Примечание.
В режиме autopilot и неинтерактивных запусках запросы, которые по-прежнему требуют утверждения, отклоняются. Если проверка безопасности требует утверждения, его объяснение передается обратно Copilot , чтобы он смог попробовать другой подход. См . раздел AUTOTITLE.
Copilot выбирает модель, используемую для проверки безопасности, которая может отличаться от модели, выбранной для беседы. Если выбранная модель проверки недоступна, проверка может использовать активную модель сеанса. Если вы используете собственный поставщик моделей, проверка использует активную модель сеанса.
Внимание
Assisted permissions уменьшает частоту запроса, но она не удаляет вашу ответственность за то, что Copilot делает. Модель может делать ошибки и утверждать опасные или непреднамеренные действия. Эта функция не является заменой для песочницы или ограничений доступа. Как и в случае с любым вариантом автоматического утверждения, необходимо проверить Copilot действия и рассмотреть возможность его запуска в песочнице или другой изолированной среде. Дополнительные сведения см. в разделе интерфейс командной строки GitHub Copilot.
Использование assisted permissions в GitHub Copilot app
Чтобы включить assisted permissions локальный сеанс, выполните приведенные действия.
- В окне запроса откройте меню режима, в котором отображается текущий режим, например интерактивный, план или Autopilot.
- Щелкните "Разрешения средства", а затем выберите "Помощь".
Выбор применяется к текущему сеансу, а также сохраняется в качестве значения по умолчанию для новых локальных сеансов. Он не изменяет другие существующие сеансы. Чтобы изменить значение по умолчанию без изменения текущего сеанса, откройте параметры, выберите "Сеансы" и выберите "Вспомогательный" в разделе разрешений средства.
Чтобы включить assisted permissions только текущий активный сеанс, не изменяя значение по умолчанию, введите /permissions assisted в поле запроса. Введите /permissions manual , чтобы вернуть этот сеанс на утверждение вручную или /permissions show проверить его режим разрешений.
Элементы управления разрешениями инструментов недоступны для облачных сеансов. Для сеансов на удаленном узле доступные режимы разрешений зависят от того, что поддерживает этот узел. Ограничения администратора по-прежнему применяются, даже если вы выбрали "Помощь" в качестве значения по умолчанию.
Использование assisted permissions в GitHub Copilot CLI
В зависимости от того, хотите ли вы включить сеанс для сеанса, в течение каждого нового сеанса или для одного автоматического запуска можно включить три способа assisted permissions.
Включение его во время интерактивного сеанса
Введите следующую команду косой черты:
/permissions assisted
/permissions assisted
Чтобы вернуться к утверждению вручную, введите /permissions manual. Чтобы проверить, в какой режим разрешений вы находитесь в данный момент, введите /permissions show. Вы также можете ввести /permissions,без аргументов, чтобы выбрать режим из списка.
Создание его по умолчанию для новых сеансов
Чтобы сделать assisted permissions предпочитаемый режим для новых интерактивных сеансов, установите значение defaultPermissionMode``"assisted" в файле конфигурации пользователя (~/.copilot/settings.json). Вы можете изменить файл напрямую или использовать команду косой /settings черты во время сеанса. Дополнительные сведения см. в разделе Каталог конфигурации CLI GitHub Copilot.
Этот параметр применяется только к новым интерактивным сеансам. Если ваш администратор задает, permissions.defaultModeэтот управляемый по умолчанию по умолчанию имеет приоритет над вашими предпочтениями. Вы по-прежнему можете выбрать другой режим для сеанса, например с /permissions manualпомощью политики.
Возобновленные сеансы сохраняют сохраненный режим разрешений, при условии текущих ограничений политики. Параметр --allow-all или --yolo параметр имеет приоритет по умолчанию, если политика разрешает ее. Если выбранная по умолчанию недоступна или заблокирована политикой, интерфейс командной строки начинается с утверждения вручную.
Чтобы сделать утверждение вручную предпочитаемым по умолчанию, установите значение defaultPermissionMode``"manual". Если ни вы, ни администратор не настроили значение по умолчанию, новые сеансы могут запускаться в ручном или вспомогательном режиме. Используется /permissions show для проверки.
Использование его для неинтерактивного запуска
При выполнении Copilot CLI неинтерактивно (с -p параметром или --prompt параметром или в среде без подключенного терминала, например рабочего процесса CI/CD), используйте --assisted-approval параметр командной строки:
copilot -p "Fix the failing tests" --assisted-approval
copilot -p "Fix the failing tests" --assisted-approval
Вы также можете задать COPILOT_ASSISTED_APPROVAL переменную trueсреды, которая полезна в автоматизированных средах, где невозможно легко изменить выполняемую команду.
Этот параметр предназначен только для неинтерактивных запусков. Если он используется при запуске интерактивного сеанса, интерфейс командной строки завершается ошибкой. Для использования assisted permissions в интерактивном сеансе используйте /permissions assisted или defaultPermissionMode параметр.
Когда следует использовать параметр командной строки
В неинтерактивном запуске никто недоступен для ответа на запросы на утверждение, поэтому вам в противном случае придется выбрать один из двух вариантов неприменения. Без каких-либо параметров разрешений запрещается что-либо, Copilot которое требует утверждения, и часто не может завершить задачу. При этом --allow-all-toolsвы предоставляете одеяло разрешения на инструмент без проверки безопасности модели.
--assisted-approval — средняя земля. Запрашивает, чтобы судьи проверки безопасности были утверждены автоматически. Если проверка требует утверждения, запрос отклоняется и его объяснение передается обратно Copilot , чтобы он смог попробовать другой подход. Другие запросы, которые по-прежнему требуют утверждения, также отклоняются.
Рекомендуется использовать его, если требуется автоматическое выполнение (в рабочем процессе CI/CD, запланированном задании или пакетном скрипте), чтобы выполнить реальную работу без Copilot предоставления безусловного разрешения на выполнение любой команды.
Дополнительные сведения о выполнении Copilot CLI программно см. в разделе Программный запуск GitHub Copilot CLI.
Предупреждение
При успешном включении приоритет имеет приоритет, --assisted-approval но он не изменяется или --allow-all-urlsне изменяется--allow-all-paths.--allow-all-tools Если вы объединяете его с --allow-all (или --yolo), доступ к пути и URL-адресу по-прежнему может быть неограниченным, даже если assisted permissions включен для запросов инструментов.
Если assisted permissions его нельзя включить, так как параметры предприятия блокируют его, например, интерфейс командной строки записывает предупреждение в стандартную ошибку. Он не отменяет отдельный --allow-all-tools вариант, предоставленный вами, поэтому запросы инструментов по-прежнему могут быть утверждены без проверки безопасности. Проверьте это предупреждение в выходных данных автоматических запусков.
Поведение assisted permissions в Copilot CLI
-
Включение его в сеансе влияет только на этот сеанс. При вводе
/permissions assistedостается assisted permissions на протяжении остальной части этого сеанса, если вы не отключите его. Это не влияет на другие открытые сеансы. Чтобы применить его к будущим сеансам, используйте описанныйdefaultPermissionModeвыше параметр. -
Вы можете переключаться assisted permissions в любое время. Если вы запустили сеанс с наиболее разрешительным параметром (
--allow-allили его псевдонимом--yolo), введя/permissions assistedпереключатели от безусловного утверждения в assisted permissions. -
Вы можете включить assisted permissions во время Copilot работы. Вам не нужно ждать завершения задачи. Последующие соответствующие запросы разрешений используются assisted permissions. В зависимости от предыдущего параметра это может увеличить или уменьшить количество запросов на утверждение, которые вы видите во время задачи.