{"meta":{"title":"Exécution CLI GitHub Copilot par programmation","intro":"Utiliser Copilot pour CLI dans le terminal, dans les scripts ou dans les flux de travail Actions.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/copilot","title":"GitHub Copilot"},{"href":"/fr/copilot/how-tos","title":"Procédures"},{"href":"/fr/copilot/how-tos/copilot-cli","title":"Copilot pour CLI"},{"href":"/fr/copilot/how-tos/copilot-cli/automate-copilot-cli","title":"Automatiser avec Copilot CLI"},{"href":"/fr/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically","title":"Exécuter l’interface CLI par programmation"}],"documentType":"article"},"body":"# Exécution CLI GitHub Copilot par programmation\n\nUtiliser Copilot pour CLI dans le terminal, dans les scripts ou dans les flux de travail Actions.\n\n## Présentation\n\nVous pouvez transmettre une invite directement à Copilot pour 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.\n\nPour utiliser Copilot pour CLI par programme, vous pouvez effectuer l’une des opérations suivantes.\n\n* Utilisez la commande `copilot` avec l’option de ligne de commande `-p` ou `--prompt`, suivie de votre invite :\n\n  ```shell copy\n  copilot -p \"Explain this file: ./complex.ts\"\n  ```\n\n* Transmettez un prompt à la commande `copilot` :\n\n  ```shell copy\n  echo \"Explain this file: ./complex.ts\" | copilot\n  ```\n\n  > \\[!NOTE]\n  > Les données provenant d’un flux de données sont ignorées si vous indiquez également un prompt avec l’option `-p` ou `--prompt`.\n\n## Conseils pour l’utilisation Copilot pour CLI par programmation\n\n* **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.\n* **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.\n* **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.\n* **Utilisez `-s` (silencieux)** lors de la capture de sortie. Cela supprime les métadonnées de session afin d’obtenir du texte propre.\n* **Utiliser `--no-ask-user`** pour empêcher l’agent de tenter de poser des questions de clarification.\n* **Définissez un modèle explicitement** avec `--model` pour un comportement cohérent entre les environnements.\n\nConsultez [référence programmatique du CLI GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-programmatic-reference) pour connaître les options particulièrement utiles lors de l’exécution Copilot pour CLI par programmation.\n\n## Intégration CI/CD\n\nUn cas d’usage courant pour l’exécution Copilot pour CLI par programme consiste à inclure une commande CLI dans une étape de flux de travail CI/CD.\n\nCet extrait d’un GitHub Actions flux de travail montre un exemple simple d’exécution d’une Copilot pour CLI commande.\n\n```yaml\n# Workflow step using Copilot CLI\n- name: Generate test coverage report\n  env:\n    COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}\n  run: |\n    copilot -p \"Run the test suite and produce a coverage summary\" \\\n      -s --allow-tool='shell(npm:*), write' --no-ask-user\n```\n\nPour plus d’informations, consultez « [Automatisation des tâches avec l’interface CLI Copilot et GitHub Actions](/fr/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions) ».\n\n## Exemples d’utilisation par programmation\n\n### Générer un message de validation\n\n```bash copy\ncopilot -p 'Write a commit message in plain text for the staged changes' -s \\\n  --allow-tool='shell(git:*)'\n```\n\n### Résumer un fichier\n\n```bash copy\ncopilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s\n```\n\n### Écrire des tests pour un module\n\n```bash copy\ncopilot -p 'Write unit tests for src/utils/validators.ts' \\\n  --allow-tool='write, shell(npm:*), shell(npx:*)'\n```\n\n### Corriger les erreurs de lint\n\n```bash copy\ncopilot -p 'Fix all ESLint errors in this project' \\\n  --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'\n```\n\n### Expliquer une différence de version\n\n```bash copy\ncopilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s\n```\n\n### Révision du code d’une branche\n\nUtilisez la commande slash `/review` pour que l'agent intégré `code-review` passe en revue les modifications de code sur la branche actuelle.\n\n```bash copy\ncopilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \\\n  -s --allow-tool='shell(git:*)'\n```\n\n### Générer une documentation\n\n```bash copy\ncopilot -p 'Generate JSDoc comments for all exported functions in src/api/' \\\n  --allow-tool=write\n```\n\n### Exporter une session\n\nEnregistrez la transcription de session complète dans un fichier Markdown sur le système de fichiers local.\n\n```bash copy\ncopilot -p \"Audit this project's dependencies for vulnerabilities\" \\\n  --allow-tool='shell(npm:*), shell(npx:*)' \\\n  --share='./audit-report.md'\n```\n\nEnregistrez la transcription de la session sur un gist via GitHub.com pour un partage facile.\n\n```bash copy\ncopilot -p 'Summarize the architecture of this project' --share-gist\n```\n\n> \\[!NOTE]\n> 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).\n\n## Modèles de script shell\n\n### Capturer la sortie de Copilot dans une variable\n\n```bash copy\nresult=$(copilot -p 'What version of Node.js does this project require? \\\n  Give the number only. No other text.' -s)\necho \"Required Node version: $result\"\n```\n\n### Utiliser dans un conditionnel\n\n```bash copy\nif copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \\\n  | grep -qi \"no\"; then\n  echo \"No type errors found.\"\nelse\n  echo \"Type errors detected.\"\nfi\n```\n\n### Traiter plusieurs fichiers\n\n```bash copy\nfor file in src/api/*.ts; do\n  echo \"--- Reviewing $file ---\" | tee -a review-results.md\n  copilot -p \"Review $file for error handling issues\" -s --allow-all-tools | tee -a review-results.md\ndone\n```\n\n## Lectures complémentaires\n\n* [CLI GitHub Copilot](/fr/copilot/how-tos/copilot-cli)\n* [référence programmatique du CLI GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-programmatic-reference)\n* [Référence de commande CLI pour GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)"}