Skip to main content

Ответственное использование GitHub Copilot CLI

Научитесь использовать GitHub Copilot CLI ответственно, понимая его цели, возможности и ограничения.

Кто может использовать эту функцию?

GitHub Copilot CLI Доступна со всеми Copilot тарифными планами. Если вы получаете Copilot от организации, Copilot CLI политика должна быть включена в настройках организации.

Около GitHub Copilot CLI

          GitHub Copilot CLI предоставляет интерфейс, похожий на чат, в терминале, который может автономно создавать и изменять файлы на вашем компьютере, а также выполнять команды. Вы можете попросить Copilot выполнить любое действие с файлами в Active Directory.

          GitHub Copilot CLI может генерировать индивидуальные изменения на основе вашего описания и конфигураций, включая задачи по исправлению ошибок, внедрению новых функций, прототипированию, документации и поддержанию кода.

Во время работы над задачей Copilot агент имеет доступ к вашей локальной терминальной среде, где может вносить изменения в ваш код, выполнять автоматические тесты, запускать линтеры и выполнять команды, доступные в вашей среде.

Агент был оценен на различных языках программирования с английским языком в качестве основного поддерживаемого языка.

Агент работает, используя комбинацию обработки естественного языка и machine learning для понимания вашей задачи и внесения изменений в кодовую базу для её выполнения. Этот процесс можно разбить на несколько шагов.

Обработка входных данных

Ваш вклад комбинируется с релевантной контекстной информацией для формирования заданий. Этот запрос отправляется в большую языковую модель для обработки. Входные данные могут быть в форме простого естественного языка, фрагментов кода или ссылок на файлы в терминале.

Анализ языковой модели

Затем запрос передается через большую языковую модель, которая является нейронной сетью, которая была обучена на большом теле данных. Языковая модель анализирует входный запрос, чтобы помочь агенту рассуждать о задаче и использовать необходимые инструменты.

Создание ответов

Языковая модель создает ответ на основе его анализа запроса. Этот ответ может принимать форму предложений на естественном языке, предложений кода, изменений файлов и выполнения команд.

Форматирование вывода

Ответ, сгенерированный агентом, будет отформатирован и представлен вам. GitHub Copilot CLI использует выделение синтаксиса, отступы и другие функции форматирования для повышения ясности сгенерированного ответа.

Агент также может захотеть выполнять команды в локальной среде и создавать, редактировать или удалять файлы в файловой системе для выполнения задачи.

Вы можете оставить отзыв оператору после того, как он ответит в окне интерактивного чата. Затем агент повторит отправку обратной связи в языковую модель для дальнейшего анализа. Как только агент внесет изменения на основе обратной связи, он вернет дополнительный ответ.

Copilot предназначен для того, чтобы предоставить вам наиболее релевантное решение для решения задач. Однако он может не всегда предоставлять ответ, который вы ищете. Вы отвечаете за анализ и проверку ответов, полученных Copilot ответами, чтобы убедиться в их точности и уместности. Для получения дополнительной информации см. раздел «Улучшение результатов» из GitHub Copilot CLI, позже в этой статье.

Сценарии использования GitHub Copilot CLI

Вы можете делегировать задачу Copilot в различных ситуациях, включая, но не ограничиваясь:

  •         **Обслуживание кодовой базы:** Работа над исправлениями, связанными с безопасностью, обновлениями зависимостей и целевым рефакторингом.
    
  •         **Документация:** Обновление и создание новой документации.
    
  •         **Разработка функций:** Реализация инкрементных запросов функций.
    
  •         **Улучшение охвата тестами:** Разработка дополнительных тестовых наборов для управления качеством.
    
  •         **Прототипирование новых проектов:** Создание новых концепций.
    
  •         **Настройка среды:** Выполнение команд в терминале для настройки локальной среды для работы над существующими проектами
    
  •         **Найдите правильную команду для выполнения задачи:**Copilot Могу предложить команды для выполнения задач, которые вы пытаетесь выполнить.
    
  •         **Объясните незнакомую команду:**Copilot может предоставить описание функциональности и назначения команды на естественном языке.
    

Улучшение результатов из GitHub Copilot CLI

          GitHub Copilot CLI может поддерживать широкий спектр задач. Чтобы улучшить получаемые ответы и устранить некоторые ограничения агента, вы можете принять различные меры.

Для получения дополнительной информации об ограничениях см. раздел «Ограничения» GitHub Copilot CLI, далее в этой статье.

Убедитесь, что задачи хорошо ограничены

          GitHub Copilot CLI Используйте ваш запрос как ключевой контекст при выполнении задачи. Чем яснее и чётче вы предоставите подсказку, тем лучшие результаты вы получите. Идеальный запрос включает:
  • Четкое описание проблемы, необходимой для решения или необходимой работы.
  • Полные критерии принятия решений о том, как выглядит хорошее решение (например, должны быть модульные тесты?).
  • Подсказки или указатели на изменения файлов.

Настройка взаимодействия с дополнительным контекстом

          GitHub Copilot CLI Использует ваш запрос и код репозитория в качестве контекста при генерации предложенных изменений. Для повышения Copilotпроизводительности рассмотрите возможность внедрения индивидуальных Copilot инструкций, которые помогут агенту лучше понять ваш проект и понять, как строить, тестировать и проверять его изменения. Дополнительные сведения см. в разделе [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions).

Используйте GitHub Copilot CLI как инструмент, а не как замену

Хотя GitHub Copilot CLI это может быть мощным инструментом для генерации кода и документации, важно использовать его как инструмент, а не как замену человеческому программированию. Всегда проверяйте и проверяйте сгенерированные GitHub Copilot CLI команды, чтобы убедиться, что они соответствуют вашим требованиям и не содержат ошибок или проблем с безопасностью.

Использование безопасных методов написания кода и проверки кода

Хотя GitHub Copilot CLI он может генерировать синтаксически корректный код, он не всегда является безопасным. Рекомендуется всегда следовать рекомендациям по безопасному кодированию, таким как предотвращение жестко закодированных паролей или уязвимостей внедрения SQL, а также соблюдение рекомендаций по проверке кода для решения ограничений агента. Вы всегда должны принимать те же меры предосторожности, что и любой код, который вы пишете, который использует материал, который вы не исходили независимо, включая меры предосторожности, чтобы обеспечить его пригодность. К ним относятся строгое тестирование, сканирование IP-адресов и проверка уязвимостей системы безопасности.

Предоставьте отзыв

Если вы столкнётесь с проблемами или ограничениями GitHub Copilot CLI, мы рекомендуем дать обратную связь с помощью /feedback команды.

Меры безопасности для GitHub Copilot CLI

Ограничения Copilotразрешений

По умолчанию Copilot CLI:

  • Имеет доступ только к файлам и папкам в и ниже каталоге, из которых GitHub Copilot CLI был вызван. Убедитесь, что вы доверяете файлам в этом каталоге. Если Copilot он хочет получить доступ к файлам вне текущей папки, он запросит разрешение. Предоставьте ему разрешение только в том случае, если вы доверяете содержимому этого каталога.
  • Попрошу разрешения перед изменением файлов. Прежде чем предоставлять разрешение, убедитесь, что он изменяет правильные файлы.
  • Спрашиваю разрешение перед выполнением опасных команд. Внимательно просмотрите эти команды, прежде чем дать разрешение на запуск.

Вы можете предоставить Copilot CLI определённые разрешения или все права, используя различные параметры командной строки: например, --allow-tool=[TOOLS...], --allow-all-tools, --allow-all (или её эквивалент /allow-all команды слэш для использования в интерактивной сессии). Дополнительные сведения см. в разделе Справочник команды GitHub Copilot CLI. Обычно, когда вы используете Copilot CLI режим автопилота, вы предоставляете ему полные разрешения, позволяющие выполнять задачу самостоятельно, без необходимости одобрять активность по мере выполнения задачи. Дополнительные сведения см. в разделе Позволяя GitHub Copilot CLI работать автономно.

Для получения дополнительной информации о практиках безопасности при использовании GitHub Copilot CLIсм. раздел «Соображения безопасности» в AUTOTITLE.

Обработка данных при использовании собственного провайдера модели

Когда вы настраиваете Copilot CLI использование собственного провайдера модели, ваши запросы, контекст кода и сгенерированные ответы отправляются напрямую к настраиваемому провайдеру. Они не проходят через GitHub. Вы несёте ответственность за ознакомление и соблюдение условий использования и политики обращения с данными выбранного вами провайдера.

Телеметрия

Когда вы используете свой собственный провайдер без офлайн-режима, Copilot CLI телеметрия GitHub продолжается как обычно. Эта телеметрия не включает ваши подсказки или код, но содержит метаданные использования.

Если включить офлайн-режим, установив COPILOT_OFFLINE переменную окружения на true, вся телеметрия отключается. В офлайн-режиме Copilot CLI он отправляет сетевые запросы только к настроенному провайдеру модели.

Аутентификация и доступность функций

          GitHub Аутентификация не требуется при использовании собственного поставщика модели (BYOK). Без аутентификации следующие функции недоступны:GitHub

* /delegate, что передаёт сессию серверной GitHubстороне Copilot * GitHub Сервер MCP * GitHub Поиск кода

В офлайн-режиме также отключены веб-инструменты, web_fetch такие как и GitHub поиск по коду.

Нет резервных вариантов для GitHub-hosted моделей

Если конфигурация провайдера модели некорректна, Copilot CLI выходит с ошибкой. Он не возвращается к GitHub-hosted моделям. Распространённые сбои, такие как отказ в соединении, ошибки аутентификации, не найдена модель и тайм-ауты, создают удобные сообщения с практическими рекомендациями.

Ограничения GitHub Copilot CLI

В зависимости от таких факторов, как ваша кодовая база и входные данные, вы можете испытать разные уровни производительности при использовании GitHub Copilot CLI. Следующая информация предназначена для того, чтобы помочь вам понять ограничения системы и ключевые понятия о производительности при их применении к GitHub Copilot CLI.

Ограниченная область

Используемая языковая модель GitHub Copilot CLI обучена на большом объеме кода, но всё ещё ограничена и может не справляться с определёнными структурами кода или малоизвестными языками программирования. Для каждого языка качество получаемых предложений может зависеть от объема и разнообразия обучающих данных для этого языка.

Потенциальные смещения

Языковая модель, используемая GitHub Copilot CLIобучающими данными и контекстом, собранным крупной языковой моделью, может содержать предвзятости и ошибки, которые может быть допущены инструментом. Кроме того, GitHub Copilot CLI может быть предвзято в пользу определённых языков программирования или стилей программирования, что может привести к неоптимальным или неполным предложениям.

Угрозы безопасности

          GitHub Copilot CLI генерирует код и естественный язык на основе контекста проблемы или комментария в репозитории, что может потенциально выявить чувствительную информацию или уязвимости при неаккуратном использовании. Вам следует тщательно проверять все результаты, полученные после GitHub Copilot CLI слияния, перед объединением.

Неточный код

          GitHub Copilot CLI может генерировать код, который кажется корректным, но может быть не совсем семантически или синтаксически корректным или не точно отражать намерения разработчика.

Чтобы снизить риск неточного кода, необходимо тщательно проверить созданный код, особенно при работе с критически важными или конфиденциальными приложениями. Кроме того, необходимо убедиться, что созданный код соответствует рекомендациям и шаблонам проектирования и соответствует общей архитектуре и стилю базы кода.

Общедоступный код

          GitHub Copilot CLI может генерировать код, который совпадает или близок к общедоступному коду, даже если политика «Предложения, соответствующие публичному коду» установлена на «Блокировать». См [. раздел AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code).

Пользователям необходимо оценить потенциальные юридические и нормативные обязательства при использовании любых служб и решений ИИ, которые могут не подходить для использования в каждой отрасли или сценарии. Кроме того, службы или решения ИИ не предназначены для использования и не могут использоваться способами, запрещенными в применимых условиях обслуживания и соответствующих кодексах поведения.

Управление рисками и подотчетность пользователей в выполнении команд

Требуется дополнительная осторожность при запросе или разрешении GitHub Copilot CLI выполнить команду, особенно в отношении потенциальной разрушительности некоторых предложенных команд. Вы можете столкнуться с командами для удаления файлов или форматирования жесткого диска, что может вызвать проблемы при неправильном использовании. Хотя такие команды могут потребоваться в определенных сценариях, необходимо быть осторожным при принятии и выполнении этих команд.

Кроме того, вы в конечном итоге отвечаете за команды, выполняемые GitHub Copilot CLI. Решение использовать команды, сгенерированные GitHub Copilot CLI. Несмотря на наличие небезопасных и безопасных механизмов, необходимо понять, что выполнение команд несет внутренние риски. GitHub Copilot CLI предоставляет мощный набор инструментов, но к его рекомендациям следует подходить с осторожностью и следить, чтобы команды соответствовали вашим намерениям и требованиям.

Дополнительные материалы

  •         [автозаголовок](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot)
    
  •         [
            GitHub Copilot Центр доверия](https://copilot.github.trust.page/)