Présentation
Vous pouvez fournir une invite directement à Copilot CLI dans une seule commande, sans passer par une 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 Copilot CLI par programmation, 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" -
Diriger une invite vers la commande
copilot:Shell echo "Explain this file: ./complex.ts" | copilot
echo "Explain this file: ./complex.ts" | copilotRemarque
L’entrée redirigée est ignorée si vous fournissez également une invite avec l’option
-pou l’option--prompt.
Conseils pour l’utilisation de Copilot CLI de manière programmatique
-
**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 fonction, modification exacte), moins Copilot doit faire de suppositions. -
**Citez les invites avec soin** : utilisez des guillemets simples autour de votre invite pour éviter l'interprétation des caractères spéciaux par le shell. -
**Accordez toujours des autorisations minimales** : utilisez les options de ligne de commande `--allow-tool=[TOOLS...]` et `--allow-url=[URLs...]` pour donner à Copilot l’autorisation d’utiliser uniquement les outils et l’accès nécessaires pour terminer 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 Informations de référence sur GitHub Copilot CLI pour l'utilisation de l'interface en ligne de commande (CLI) pour connaître les options particulièrement utiles lors de l’exécution de Copilot CLI par programmation.
Intégration CI/CD
Un cas d’usage courant pour exécuter Copilot CLI est d'inclure une commande CLI dans une étape de flux de travail CI/CD de manière programmatique.
Cet extrait d’un flux de travail GitHub Actions montre un exemple simple d’exécution d’une commande Copilot 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
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 session dans un gist sur GitHub.com pour faciliter le partage.
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)