Skip to main content

Exécution de CLI de GitHub Copilot de manière programmatique

Utilisez Copilot CLI dans le terminal, dans les scripts ou dans les flux de travail Actions.

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 copilot avec l’option de ligne de commande -p ou --prompt, suivie de votre invite :

    Shell
    copilot -p "Explain this file: ./complex.ts"
    
  • Diriger une invite vers la commande copilot :

    Shell
    echo "Explain this file: ./complex.ts" | copilot
    

    Remarque

    L’entrée redirigée est ignorée si vous fournissez également une invite avec l’option -p ou 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

Bash
copilot -p 'Write a commit message in plain text for the staged changes' -s \
  --allow-tool='shell(git:*)'

Résumer un fichier

Bash
copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s

Écrire des tests pour un module

Bash
copilot -p 'Write unit tests for src/utils/validators.ts' \
  --allow-tool='write, shell(npm:*), shell(npx:*)'

Corriger les erreurs de lint

Bash
copilot -p 'Fix all ESLint errors in this project' \
  --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'

Expliquer une différence de version

Bash
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.

Bash
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

Bash
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.

Bash
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.

Bash
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

Bash
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

Bash
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

Bash
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)