Skip to main content

Configurer le CLI GitHub Copilot

Configurer les répertoires approuvés, l’accès aux outils et les autorisations de chemin d’accès et d’URL pour Copilot CLI

Remarque

GitHub Copilot CLI se trouve dans préversion publique avec protection des données et peut être modifié.

Présentation

Copilot CLI propose plusieurs options de configuration qui contrôlent ce à quoi il peut accéder et ce qu'il peut réaliser en votre nom.

Cet article explique comment définir des répertoires approuvés, configurer l’accès pour les outils et accorder des autorisations aux chemins d’accès et URL de fichier.

Prerequisites

Définition de répertoires approuvés

Les répertoires approuvés contrôlent où Copilot CLI peut lire, modifier et exécuter des fichiers. La confiance d’un annuaire a des implications en matière de sécurité, consultez considérations relatives à la sécurité.

Choisir de faire confiance à un répertoire

Lorsque vous démarrez une session GitHub Copilot CLI, il vous sera demandé de confirmer que vous faites confiance aux fichiers contenus dans le répertoire à partir duquel vous avez lancé l’interface de ligne de commande, ainsi qu’aux sous-répertoires de celui-ci.

Vous pouvez choisir de faire confiance au répertoire actuel pour :

  • La session en cours uniquement
  • Cette session et les sessions futures

Si vous choisissez de faire confiance au répertoire pour les sessions futures, le prompt du répertoire de confiance ne s’affichera plus. Vous ne devez choisir cette deuxième option que si vous êtes certain que cet emplacement sera toujours sûr pour le fonctionnement de Copilot.

Modification de répertoires approuvés

Vous pouvez modifier la liste des répertoires approuvés définitivement.

  1. Ouvrez le fichier config.json de la CLI. Par défaut, il est stocké dans un .copilot dossier sous votre répertoire de base : * macOS/Linux : ~/.copilot/config.json * Windows : $HOME\.copilot\config.json

Vous pouvez modifier l’emplacement de configuration en définissant la XDG_CONFIG_HOME variable d’environnement (principalement sur macOS/Linux).

  1. Modifiez le contenu du trusted_folders tableau.

Définition des outils autorisés

Vous pouvez contrôler les outils que Copilot CLI peut utiliser, soit en répondant aux demandes d’approbation lorsque Copilot tente d’utiliser un outil, soit en spécifiant des autorisations via les indicateurs de ligne de commande.

N’oubliez pas que l’autorisation d’accès aux outils a des implications en matière de sécurité, consultez considérations relatives à la sécurité.

Dans cette section, vous pouvez apprendre à :

  •         [Autoriser un outil pour la première fois](#allowing-a-tool-for-the-first-time)
    
  •         [Autoriser l’utilisation d’outils sans approbation manuelle](#allowing-tools-to-be-used-without-manual-approval)
    
  •         [Spécifier l’outil que vous souhaitez autoriser ou refuser](#specifying-which-tool-you-want-to-allow-or-deny)
    
  •         [Autoriser certains outils tout en refusant d’autres](#allowing-some-tools-while-denying-others)
    
  •         [Limiter les outils disponibles](#limiting-available-tools)
    

Autorisation d’un outil pour la première fois

La première fois que Copilot doit utiliser un outil qui peut nécessiter une approbation( par exemple, par exemple, touch, chmod, node ou sed) il vous demande si vous souhaitez l’autoriser à s’exécuter. Le fait d'être invité peut dépendre de l’outil et de la façon dont il est utilisé (par exemple, des arguments fournis ou si l’outil a été précédemment approuvé).

  1. Demander à Copilot d'effectuer une tâche nécessitant un outil. Par exemple:

    copilot -p "Create a new file called README.md with a project description"
    
  2. Choisissez parmi l’une des trois options suivantes :

    • 1. Yes

      Choisissez cette option pour autoriser Copilot à exécuter cette commande particulière, cette fois uniquement. La prochaine fois qu’il aura besoin de cet outil, il vous le demandera à nouveau.

    • 2. Yes, and approve TOOL for the rest of the running session

      Choisissez cette option pour autoriser Copilot à utiliser cet outil pendant la durée de la session en cours d’exécution. Il vous redemandera votre approbation lors de nouvelles sessions, ou si vous reprenez la session en cours ultérieurement. Si vous choisissez cette option, vous autorisez Copilot à utiliser cet outil de la manière qu’il juge appropriée.

      Par exemple, si Copilot vous demande l’autorisation d’exécuter la commande rm ./this-file.txt et que vous choisissez l’option 2, Copilot peut alors exécuter n’importe quelle commande rm (par exemple, rm -rf ./*) pendant la session en cours, sans demander votre approbation.

    • 3. No, and tell Copilot what to do differently (Esc)

      Choisissez cette option pour annuler la commande proposée et demandez à Copilot d’essayer une autre approche.

Autoriser l’utilisation d’outils sans approbation manuelle

Vous pouvez utiliser des indicateurs de ligne de commande pour désigner des outils que Copilot peuvent utiliser sans demander votre approbation.

Autorisation de tous les outils

Utilisez l’option --allow-all-tools pour autoriser Copilot à utiliser n’importe quel outil sans demander votre approbation.

  • Par exemple:

    copilot -p "Revert the last commit" --allow-all-tools
    

Refus d’un outil

Utilisez --deny-tool pour empêcher Copilot d’utiliser un outil spécifique.

  • Par exemple:

    copilot --deny-tool 'shell(git push)'
    

Cette option a priorité sur les options --allow-all-tools et --allow-tool.

Autorisation d’un outil

Utilisez --allow-tool pour permettre à Copilot d'utiliser un outil spécifique sans nécessiter votre approbation.

  • Par exemple:

    copilot --allow-tool 'shell'
    

Spécification de l’outil que vous souhaitez autoriser ou refuser

Pour utiliser les options --deny-tool et --allow-tool, vous devez spécifier le type d’outil que vous souhaitez autoriser ou refuser :

  •         [Commandes shell](#allowing-or-denying-shell-commands)
    
  •         [Outils « Écrire »](#allowing-or-denying-write-tools)
    
  •         [Outils serveur MCP](#allowing-or-denying-mcp-server-tools)
    

Autorisation ou refus des commandes shell

Permet shell(COMMAND) d’autoriser ou de refuser une commande shell spécifique.

  • Par exemple, pour éviter que Copilot utilise une commande rm quelconque, utilisez :

    copilot --deny-tool 'shell(rm)'
    

Pour git et gh les commandes, spécifiez une sous-commande de premier niveau particulière pour autoriser ou refuser.

  • Par exemple, pour empêcher Copilot d’utiliser git push, utilisez :

    copilot --deny-tool 'shell(git push)'
    

La spécification de l’outil est facultative. Par exemple, copilot --allow-tool 'shell' autorise Copilot à utiliser n’importe quelle commande de l’interpréteur de commandes sans approbation individuelle.

Autorisation ou refus 'write' d’outils

Utilisez 'write' pour autoriser ou refuser à des outils (autres que les commandes shell) la permission de modifier des fichiers.

  • Par exemple, pour autoriser Copilot à modifier des fichiers sans votre approbation individuelle, utilisez :

    copilot --allow-tool 'write'
    

Autorisation ou refus des outils serveur MCP

Permet 'MCP_SERVER_NAME' d’autoriser ou de refuser un outil spécifique à partir du serveur MCP spécifié.

  • Par exemple, pour empêcher Copilot d’utiliser l’outil appelé tool_name à partir du serveur MCP appelé My-MCP-Server, utilisez :

    copilot --deny-tool 'My-MCP-Server(tool_name)'
    
            `MCP_SERVER_NAME` est le nom d’un serveur MCP que vous avez configuré.
    

Les outils du serveur sont spécifiés entre parenthèses, en utilisant le nom de l’outil enregistré auprès du serveur MCP.

Utiliser le nom du serveur sans spécifier d’outil autorise ou refuse tous les outils de ce serveur.

Vous pouvez trouver le nom d’un serveur MCP en entrant /mcp en mode interactif de Copilot CLI et en sélectionnant le serveur dans la liste qui s’affiche.

Autoriser certains outils tout en refusant d’autres

Pour déterminer exactement quels outils Copilot peuvent être utilisés sans demander votre approbation, vous pouvez utiliser une combinaison d’options d’approbation. Par exemple:

  • Pour empêcher Copilot d’utiliser les commandes rm et git push, mais pour autoriser automatiquement tous les autres outils, procédez comme suit :

    copilot --allow-all-tools --deny-tool 'shell(rm)' --deny-tool 'shell(git push)'
    
  • Pour empêcher Copilot d’utiliser l’outil tool_name du serveur MCP nommé My-MCP-Server, mais autoriser tous les autres outils de ce serveur à être utilisés sans approbation individuelle, utilisez :

    copilot --allow-tool 'My-MCP-Server' --deny-tool 'My-MCP-Server(tool_name)'
    

Limitation des outils disponibles

Pour restreindre Copilot à un ensemble spécifique d’outils, utilisez --available-tools.

Les outils non inclus dans cette liste ne seront pas disponibles dans Copilot.

Définition des autorisations de chemin d’accès

Les autorisations de chemin déterminent les répertoires et fichiers auxquels Copilot peut avoir accès.

Par défaut, Copilot CLI peut accéder au répertoire de travail actuel, à ses sous-répertoires et au répertoire temporaire système.

Les autorisations de chemin s’appliquent aux commandes d’interpréteur de commandes, aux opérations de fichier (créer, modifier, afficher) et aux outils de recherche (tels que grep et les modèles glob). Pour les commandes shell, les chemins d’accès sont extraits de façon heuristique en décomposant le texte des commandes en jetons et en identifiant les jetons qui ressemblent à des chemins d’accès.

Avertissement

La détection de chemin d’accès pour les commandes shell présente des limitations :

  • Les chemins intégrés dans des structures complexes de l'interpréteur de commandes peuvent ne pas être détectés.
  • Seul un ensemble spécifique de variables d’environnement est développé (HOME, TMPDIR, PWDet similaire). Les variables personnalisées comme celles-ci $MY_PROJECT_DIR ne sont pas développées et peuvent ne pas être validées correctement.
  • Les liens symboliques sont résolus pour les fichiers existants, mais pas pour les fichiers créés.

Autoriser l’accès à tous les chemins d’accès

Pour désactiver la vérification du chemin et autoriser l’accès à n’importe quel chemin, utilisez l’indicateur --allow-all-paths lors du démarrage avec Copilot CLI.

Interdire l’accès au répertoire temporaire

Pour interdire l’accès au répertoire temporaire, utilisez --disallow-temp-dir.

Définition des autorisations d’URL

Les autorisations d’URL contrôlent les URL externes auxquelles Copilot peut accéder. Par défaut, toutes les URL nécessitent une approbation avant l’octroi de l’accès.

Les autorisations d’URL s’appliquent à l’outil web_fetch et à une liste de commandes shell sélectionnées qui accèdent au réseau (comme curl, wget et fetch). Pour les commandes shell, les URL sont extraites à l’aide de modèles regex.

Avertissement

La détection d’URL pour les commandes shell présente des limitations :

  • Les URL dans le contenu des fichiers, les fichiers de configuration ou les variables d’environnement lues par les commandes ne sont pas détectées.
  • Les URL obfuscatées (telles que les chaînes fractionnées ou les séquences d’échappement) peuvent ne pas être détectées.
  • HTTP et HTTPS sont traités comme des protocoles différents et nécessitent une approbation distincte.

Les autorisations d’URL peuvent être conservées pour la session ou de manière permanente.

Désactivation de la vérification d’URL

Pour désactiver la vérification d’URL, utilisez l’indicateur --allow-all-urls .

Pré-approbation de domaines spécifiques

Pour pré-approuver des domaines spécifiques, utilisez --allow-url <domain>.

  • Par exemple : --allow-url github.com.

Refus de domaines spécifiques

Pour refuser des domaines spécifiques, utilisez --deny-url <domain>.

  • Par exemple : --deny-url github.com.

Autorisation de tous les outils, chemins et URL

Pour autoriser tous les outils, chemins d’accès et URL, utilisez --allow-allou son alias. --yolo

Cet indicateur combine : * --allow-all-tools (ignorer l’approbation de l’outil). * --allow-all-paths (désactiver la vérification du chemin d’accès). * --allow-all-urls (désactive la vérification d’URL).

Conseil

Pendant une session interactive, vous pouvez également activer toutes les autorisations avec les commandes /allow-all ou les commandes /yolo avec un slash.

Prochaines étapes

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot)