Skip to main content

Сведения о расширениях для GitHub Copilot CLI

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

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

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

Примечание.

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

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

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

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

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

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

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

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

При Copilot CLI запуске он ищет расширения в нескольких расположениях. Каждое расширение живет в собственной подкаталоге, и этот подкаталог должен содержать файл записи с именем extension.mjs, extension.cjsили extension.js. Это все файлы JavaScript: Copilot 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 по-прежнему могут вызывать предоставляемые им средства. Он просто не может самостоятельно управлять расширениями.

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

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

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

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

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