Skip to main content

Autorisation et refus de l’utilisation de l’outil

Contrôlez quels outils Copilot CLI peuvent utiliser pour éviter les modifications involontaires.

Présentation

Copilot CLI utilise un large éventail d'outils afin de réaliser des tâches pour vous. Il peut exécuter des commandes shell, lire et écrire des fichiers, rechercher votre base de code, extraire du contenu web et déléguer des tâches à des sous-agents spécialisés.

Bien que les opérations en lecture seule telles que la recherche, la lecture de fichiers et l’exécution de commandes shell en lecture seule soient autorisées automatiquement, les outils qui peuvent modifier votre système, tels que l’exécution de commandes d’interpréteur de commandes destructrices, la modification de fichiers ou l’accès aux URL, nécessitent votre approbation explicite avant Copilot peut les utiliser. Cela permet d’éviter l’utilisation de l’interface CLI résultant de modifications que vous n’avez pas prévues, car, par exemple, une commande shell peut effectuer tout ce que votre compte d’utilisateur peut faire : installer des packages, supprimer des fichiers, envoyer du code ou effectuer des requêtes réseau.

Vous pouvez autoriser ou refuser des autorisations pour les outils lorsque vous démarrez l’interface CLI ou pendant votre session interactive. Si vous n’avez pas accordé d’autorisation avant de démarrer une session, Copilot CLI vous invite à obtenir l’autorisation chaque fois qu’elle doit effectuer une action potentiellement destructrice. Vous pouvez choisir d’autoriser l’outil cette fois ou pour le reste de la session.

Couches de contrôles des outils

Il existe deux couches de contrôle que vous pouvez utiliser lors de la spécification des autorisations d’outil dans les options de ligne de commande. Vous pouvez:

  • Limitez le choix des outils disponibles pour le modèle IA.
  • Autoriser ou refuser l’autorisation pour des outils spécifiques.

Restriction du choix des outils disponibles pour le modèle IA

Les options --available-tools et --excluded-tools limitent l'ensemble d'outils dont le modèle IA est conscient et parmi lesquels il peut donc choisir lorsqu'il détermine comment accomplir une tâche.

  •         `--available-tools` désactive tous les outils autres que ceux que vous spécifiez.
    
  •         `--excluded-tools` désactive uniquement les outils spécifiés.
    

Si vous utilisez les deux options ensemble, l’interface CLI applique la liste verte spécifiée par --available-tools et ignore la liste de refus spécifiée par --excluded-tools.

Si un outil n’est pas dans l’ensemble disponible, le modèle IA ne pourra pas l’utiliser du tout, même si vous le spécifiez avec l’option --allow-tool . Dans une session interactive où vous ne spécifiez pas d’ensemble d’outils disponible, le modèle IA peut essayer d’utiliser un outil uniquement pour être refusé. Les options --available-tools et --excluded-tools vous empêchent de gaspiller des interactions avec le modèle de cette façon.

Exemple de cas d’usage

Vous démarrez une session CLI pour exécuter un benchmark sur votre projet et vous souhaitez éviter que le modèle IA ne tente même d’utiliser la recherche web.

copilot --excluded-tools='web_fetch, web_search'

Remarque

Pour plus d’informations sur la syntaxe de ces options de ligne de commande et d’autres options de ligne de commande mentionnées dans cet article, consultez Référence des commandes CLI de GitHub Copilot.

Autorisation ou refus d’autorisation pour des outils spécifiques

Les options --allow-tool et --deny-tool permettent d’autoriser ou de refuser l’accès à des outils spécifiques ou à des sous‑commandes d’outils.

La valeur de chacune de ces options est une liste séparée par des virgules de types d’outils, qui peut éventuellement spécifier des outils et des modèles de sous-commande exacts.

Si vous spécifiez un outil avec --allow-tool, le modèle IA peut choisir d’utiliser cet outil sans vous demander l’autorisation. Si vous spécifiez un outil avec --deny-tool, le modèle IA ne peut pas utiliser cet outil du tout, même s’il serait le meilleur choix pour effectuer une tâche.

Les règles de refus sont toujours prioritaires sur les règles d’autorisation, même lorsque --allow-all est défini.

Exemples

ChoixRésultat
--allow-tool=shellAutoriser toutes les commandes du shell.
--allow-tool='shell(git commit)'Autorisez la git commit commande.
--allow-tool='shell(git:*)' --deny-tool='shell(git push)'Autoriser toutes les git commandes à l’exception de git push.
--deny-tool=writeRefuser toutes les opérations d’écriture de fichiers.
--allow-tool='read, write(.github/copilot-instructions.md)'Autorisez toutes les opérations de lecture et autorisez les opérations d’écriture pour un fichier spécifique.
--allow-tool='MyMCP(create_issue), MyMCP(delete_issue)'Autorisez les outils create_issue et delete_issue du serveur MCP.
--available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)'Combinez les deux couches de contrôle pour une session CLI restreinte. Copilot peut explorer le code, apporter et valider des modifications, mais ne peut pas accéder à Internet, exécuter des agents secondaires arbitraires ou pousser dans l’historique Git.

Pour plus d’informations sur les types d’outils pris en charge, consultez Référence des commandes CLI de GitHub Copilot.

Options permissives

Les options de ligne de commande suivantes donnent à Copilot CLI l’autorisation d’utiliser tous les outils disponibles.

  •         `--allow-all-tools` — Accès complet aux outils disponibles.
    
  •         `--allow-all` ou `--yolo` — Équivaut à utiliser l’ensemble des options `--allow-all-tools`, `--allow-all-paths`, et `--allow-all-urls` lors du démarrage de l'interface CLI.
    

    Dans une session interactive, vous pouvez utiliser les commandes /allow-all ou /yolo pour autoriser tous les outils sans avoir à redémarrer la session.

    Remarque

    Il est fortement recommandé d’utiliser ces options uniquement dans un environnement isolé. Vous ne devez jamais utiliser d’alias pour appliquer l’une de ces options chaque fois que vous démarrez Copilot CLI, car cela permettrait à Copilot d’utiliser n’importe quel outil sans votre autorisation explicite chaque fois que vous utilisez l’interface CLI, ce qui peut entraîner des conséquences inattendues.

Réinitialisation des autorisations

La /reset-allowed-tools commande de barre oblique révoque toutes les autorisations que vous avez accordées pendant la session interactive active. Cela s’applique également aux autorisations que vous avez données en répondant aux invites et à l’utilisation des commandes slash /allow-all``/yolo.

En utilisant /reset-allowed-tools, les autorisations sont réinitialisées par défaut ou à l'état défini par les options de ligne de commande que vous avez utilisées lorsque vous avez lancé Copilot CLI. Par exemple, si vous démarrez une session interactive Copilot CLI avec l’option --allow-tool='shell(git:*)', puis que vous autorisez et refusez d’autres autorisations pendant la session en répondant aux invites, lorsque vous utilisez ensuite la /reset-allowed-tools commande, les autorisations de l’interface CLI retournent à l’état d’origine --allow-tool='shell(git:*)' , sans autres autorisations autorisées ou refusées. À mesure que vous continuez à travailler dans la session, vous recevrez une nouvelle invite si Copilot a besoin d’autorisations supplémentaires.

Lectures complémentaires

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/cli-best-practices#configure-allowed-tools)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)