Skip to main content

Сведения о расширениях для интерфейс командной строки GitHub Copilot

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

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

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

Примечание.

интерфейс командной строки GitHub Copilot Расширения в настоящее время являются экспериментальной функцией и могут измениться.

Расширение позволяет добавить свои собственные возможности в Второй пилот CLI. Каждое расширение — это небольшой модуль Node.js, который работает как отдельный процесс вместе с вашей интерактивной сессией и подключается обратно к нему. С помощью этого подключения расширение может добавить следующее:

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

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

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

Предупреждение

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

Обнаружение расширений

При Второй пилот CLI запуске он ищет расширения в нескольких расположениях. Каждое расширение живет в собственной подкаталоге, и этот подкаталог должен содержать файл записи с именем extension.mjs, extension.cjsили extension.js. Это все файлы JavaScript: Второй пилот CLI файл записи выполняется непосредственно с Node.js, поэтому расширение должно быть записано в JavaScript— TypeScript и других языках в настоящее время не поддерживается.

Имя подкаталога становится именем расширения.

SourceМестонахождениеДоступность
Проект
.github/extensions/NAME/ в текущем репозиторииДоступно всем, кто работает в этом репозитории.
User~/.copilot/extensions/NAME/Доступно во всех сеансах CLI в каждом каталоге.
Подключаемый модульУстановленный подключаемый модульДоступно везде, где включен подключаемый модуль.

Выбор места жизни расширения

Где вы помещаете каталог расширений, определяет, кто может использовать его:

  • Поместите его в .github/extensions/ репозиторий, когда расширение зависит от этого проекта, и вы хотите поделиться им со всеми, кто работает там.
  • Поместите его ~/.copilot/extensions/ , если требуется расширение, доступное во всех собственных сеансах, независимо от того, какой каталог вы запускаете CLI.

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

Включение расширений

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

  • Запустите ИНТЕРФЕЙС командной строки с флагом --experimental .
  • Выполните команду косой /experimental on черты внутри интерактивного сеанса.

Изменение способа обработки расширений CLI

Вы можете ограничить Copilotдоступ к расширениям или полностью отключить их с помощью /extensions mode команды. При использовании этой команды вы получите три варианта:

  • Загрузка и расширение (по умолчанию) — интерфейс командной строки запускает расширения _и_Copilot может управлять ими.
  • Загрузка только— интерфейс командной строки запускает расширения, но Copilot не может управлять ими.
  • Отключенные— расширения полностью отключены в текущем сеансе и будут оставаться отключенными в будущих сеансах, пока не переключитесь на один из двух других параметров. Другие текущие сеансы не затрагиваются.

Любое изменение, которое вы вносите, вступает в силу немедленно в текущем сеансе:

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

Что означает "управление расширениями"

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

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

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

Выберите "Загрузка только в том случае, если вы хотите сохранить известный доверенный набор расширений, но не хотите Copilot создавать, перезагрузить или изменять код расширения", который выполняется на компьютере, в качестве побочных эффектов его работы. Существующие расширения по-прежнему выполняются и Copilot по-прежнему могут вызывать предоставляемые им средства. Он просто не может самостоятельно управлять расширениями.

Расширения по сравнению с подключаемыми модулями

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

  • Расширение — это один модуль JavaScript, который записывается для добавления инструментов и команд косой черты, поддерживаемых кодом, выполняемым в сеансе.
  • Подключаемый модуль — это устанавливаемый пакет, который объединяет повторно используемые компоненты, такие как агенты, навыки, перехватчики и интеграции, и может распространяться через Marketplace.

Для получения дополнительной информации о плагинах см. О GitHub Copilot плагинах.

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