Présentation
Vous pouvez transmettre une invite directement à CLI Copilot via une seule commande, sans démarrer de session interactive. Cela vous permet d’utiliser Copilot directement à partir du terminal, mais vous permet également d’utiliser l’interface CLI par programmation dans les scripts, les pipelines CI/CD et les workflows d’automatisation.
Pour utiliser CLI Copilot par programme, vous pouvez effectuer l’une des opérations suivantes.
-
Utilisez la commande
copilotavec l’option de ligne de commande-pou--prompt, suivie de votre invite :Shell copilot -p "Explain this file: ./complex.ts"
copilot -p "Explain this file: ./complex.ts" -
Transmettez un prompt à la commande
copilot:Shell echo "Explain this file: ./complex.ts" | copilot
echo "Explain this file: ./complex.ts" | copilotRemarque
Les données provenant d’un flux de données sont ignorées si vous indiquez également un prompt avec l’option
-pou--prompt.
Conseils pour l’utilisation CLI Copilot par programmation
-
**Fournissez des invites précises : des** instructions claires et non ambiguës produisent de meilleurs résultats que des demandes vagues. Plus vous fournissez de contexte (noms de fichiers, noms de fonctions, changement exact), moins Copilot a besoin de supposer. -
**Citez les prompts avec soin** : utilisez des guillemets simples autour de votre commande si vous souhaitez éviter que le shell n’interprète les caractères spéciaux. -
**Accordez toujours des autorisations minimales** : utilisez les options de `--allow-tool=[TOOLS...]` ligne de commande pour `--allow-url=[URLs...]` accorder Copilot l’autorisation d’utiliser uniquement les outils et l’accès nécessaires pour effectuer la tâche. Évitez d’utiliser des options trop permissives (telles que `--allow-all`) sauf si vous travaillez dans un environnement de bac à sable. -
**Utilisez `-s` (silencieux)** lors de la capture de sortie. Cela supprime les métadonnées de session afin d’obtenir du texte propre. -
**Utiliser `--no-ask-user`** pour empêcher l’agent de tenter de poser des questions de clarification. -
**Définissez un modèle explicitement** avec `--model` pour un comportement cohérent entre les environnements.
Consultez référence programmatique du CLI GitHub Copilot pour connaître les options particulièrement utiles lors de l’exécution CLI Copilot par programmation.
Intégration CI/CD
Un cas d’usage courant pour l’exécution CLI Copilot par programme consiste à inclure une commande CLI dans une étape de flux de travail CI/CD.
Cet extrait d’un GitHub Actions flux de travail montre un exemple simple d’exécution d’une CLI Copilot commande.
# 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
Pour plus d’informations, consultez « Automatisation des tâches avec l’interface CLI Copilot et GitHub Actions ».
Exemples d’utilisation par programmation
Générer un message de validation
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:*)'
Résumer un fichier
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
Écrire des tests pour un module
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:*)'
Corriger les erreurs de 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:*)'
Expliquer une différence de version
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
Révision du code d’une branche
Utilisez la commande slash /review pour que l'agent intégré code-review passe en revue les modifications de code sur la branche actuelle.
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:*)'
Générer une documentation
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
Exporter une session
Enregistrez la transcription de session complète dans un fichier Markdown sur le système de fichiers local.
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'
Enregistrez la transcription de la session sur un gist via GitHub.com pour un partage facile.
copilot -p 'Summarize the architecture of this project' --share-gist
copilot -p 'Summarize the architecture of this project' --share-gist
Remarque
Les Gists ne sont pas disponibles pour Enterprise Managed Users, ou si vous utilisez GitHub Enterprise Cloud avec résidence des données (*.ghe.com).
Modèles de script shell
Capturer la sortie de Copilot dans une variable
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"
Utiliser dans un conditionnel
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
Traiter plusieurs fichiers
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
Lectures complémentaires
-
[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)