Présentation
Vous pouvez transmettre une invite directement à Copilot CLI 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 Copilot CLI 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 Copilot CLI 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. Pour plus d’informations, consultez « À propos du bac à sable local pour GitHub Copilot ». - Prendre en compte
--assisted-approvalquand vous ne pouvez pas prédire à l’avance de quels outils une tâche aura besoin. Une révision de sécurité basée sur un modèle peut approuver les demandes d’autorisation éligibles sans que vous accordiez des autorisations générales. Les règles d’autorisation existantes s’appliquent toujours et les demandes qui nécessitent toujours votre approbation sont refusées lors d’exécutions non surveillées. Pour plus d’informations, consultez « référence programmatique du CLI GitHub Copilot ». - 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-userpour empêcher l’agent de tenter de poser des questions de clarification. - Définissez un modèle explicitement avec
--modelpour 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 Copilot CLI par programmation.
Intégration CI/CD
Un cas d’usage courant pour l’exécution Copilot CLI 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 Copilot CLI 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 gh.asamalin.top 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