Skip to main content

Ответственное использование интерфейса командной строки GitHub Copilot

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

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

GitHub Copilot CLI доступен для планов GitHub Copilot Pro, GitHub Copilot Pro+, Бизнес GitHub Copilot и GitHub Copilot Enterprise планов.

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

О GitHub Copilot CLI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Варианты использования для GitHub Copilot CLI

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

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

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

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

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

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

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

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

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

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

Использование GitHub Copilot CLI в качестве средства, а не замены

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

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

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

Предоставление отзыва

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

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

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

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

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

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

Дополнительные сведения о методах безопасности при использовании GitHub Copilot CLIсм. в разделе "Рекомендации по безопасности" в Сведения о интерфейсе командной строки GitHub Copilot.

Ограничения 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.

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

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

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

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

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