Введение
Вы можете отправить запрос напрямую в Второй пилот CLI одной командой, не входя в интерактивную сессию. Это позволяет использовать Copilot непосредственно с терминала, а также программно использовать CLI в скриптах, CI/CD конвейерах и автоматизационных процессах.
Чтобы использовать Второй пилот CLI программно, можно сделать одно из следующих способов.
-
Используйте
copilotкоманду с-pопцией «или--prompt» в командной строке, а затем введите свой запрос:Shell copilot -p "Explain this file: ./complex.ts"
copilot -p "Explain this file: ./complex.ts" -
Отправьте подсказку в команду
copilot:Shell echo "Explain this file: ./complex.ts" | copilot
echo "Explain this file: ./complex.ts" | copilotПримечание.
Трубопроводный ввод игнорируется, если вы также вводите подсказку с
-pопцией или--prompt.
Советы по программному использованию Второй пилот CLI
-
**Предоставляйте точные подсказки** — чёткие, однозначные инструкции дают лучшие результаты, чем расплывчатые запросы. Чем больше контекста вы даёте — имена файлов, имя функций, точное изменение — тем меньше догадок Copilot. -
**Цитируйте подсказки аккуратно** — используйте отдельные кавычки вокруг запроса, если хотите избежать оболочной интерпретации особых символов. -
**Всегда предоставляйте минимальные права** — используйте `--allow-tool=[TOOLS...]` опции командной строки и `--allow-url=[URLs...]` предоставляйте Copilot разрешение использовать только инструменты и доступ, необходимые для выполнения задачи. Избегайте использования чрезмерно разрешительных вариантов (например `--allow-all`), если только вы не работаете в песочнице. -
**Используйте `-s` (беззвучный)** при захвате выхода. Это подавляет метаданные сессии, поэтому вы получаете чистый текст. -
**Использование `--no-ask-user`** чтобы агент не пытался задать уточняющие вопросы. -
**Установите модель для**`--model` согласованного поведения в разных средах.
См. Программный справочник GitHub Copilot CLI для опций, которые особенно полезны при программном запуске Второй пилот CLI.
Интеграция CI/CD
Распространённый сценарий для программного запуска показывает простой пример запуска команды Второй пилот CLI.
# Workflow step using Copilot CLI
- name: Generate test coverage report
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
copilot -p "Run the test suite and produce a coverage summary" \
-s --allow-tool='shell(npm:*), write' --no-ask-user
Дополнительные сведения см. в разделе Автоматизация задач с помощью Copilot CLI и GitHub Actions.
Примеры программного использования
Сгенерировать сообщение для коммита
copilot -p 'Write a commit message in plain text for the staged changes' -s \ --allow-tool='shell(git:*)'
copilot -p 'Write a commit message in plain text for the staged changes' -s \
--allow-tool='shell(git:*)'
Краткое описание файла
copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s
copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s
Пишите тесты для модуля
copilot -p 'Write unit tests for src/utils/validators.ts' \ --allow-tool='write, shell(npm:*), shell(npx:*)'
copilot -p 'Write unit tests for src/utils/validators.ts' \
--allow-tool='write, shell(npm:*), shell(npx:*)'
Исправление ошибок lint
copilot -p 'Fix all ESLint errors in this project' \ --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'
copilot -p 'Fix all ESLint errors in this project' \
--allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'
Объясните разницу
copilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s
copilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s
Обзор кода ветви
Используйте /review команду slash, чтобы встроенный code-review агент просматривал изменения кода на текущей ветке.
copilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \ -s --allow-tool='shell(git:*)'
copilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \
-s --allow-tool='shell(git:*)'
Создание документации
copilot -p 'Generate JSDoc comments for all exported functions in src/api/' \ --allow-tool=write
copilot -p 'Generate JSDoc comments for all exported functions in src/api/' \
--allow-tool=write
Экспорт сессии
Сохраните полный транскрипт сессии в файле Markdown в локальной файловой системе.
copilot -p "Audit this project's dependencies for vulnerabilities" \ --allow-tool='shell(npm:*), shell(npx:*)' \ --share='./audit-report.md'
copilot -p "Audit this project's dependencies for vulnerabilities" \
--allow-tool='shell(npm:*), shell(npx:*)' \
--share='./audit-report.md'
Сохраните расшифровку сессии в виде основы на GitHub.com для удобства обмена.
copilot -p 'Summarize the architecture of this project' --share-gist
copilot -p 'Summarize the architecture of this project' --share-gist
Примечание.
Основные характеристики недоступны для Enterprise Managed Users или если вы используете GitHub Enterprise Cloud с data residecy (*.ghe.com).
Шаблоны скриптов оболочки
Захватить выход Copilot в переменной
result=$(copilot -p 'What version of Node.js does this project require? \ Give the number only. No other text.' -s) echo "Required Node version: $result"
result=$(copilot -p 'What version of Node.js does this project require? \
Give the number only. No other text.' -s)
echo "Required Node version: $result"
Использование в условной форме
if copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \ | grep -qi "no"; then echo "No type errors found." else echo "Type errors detected." fi
if copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \
| grep -qi "no"; then
echo "No type errors found."
else
echo "Type errors detected."
fi
Обработка нескольких файлов
for file in src/api/*.ts; do echo "--- Reviewing $file ---" | tee -a review-results.md copilot -p "Review $file for error handling issues" -s --allow-all-tools | tee -a review-results.md done
for file in src/api/*.ts; do
echo "--- Reviewing $file ---" | tee -a review-results.md
copilot -p "Review $file for error handling issues" -s --allow-all-tools | tee -a review-results.md
done
Дополнительные материалы
-
[AUTOTITLE](/copilot/how-tos/copilot-cli) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)