Skip to main content
Skip to content

Configuration de l’interface CLI GitHub Copilot

Configurez les répertoires approuvés, l’accès aux outils, les autorisations de chemin d’accès et d’URL, ainsi que les données de télémétrie côté client pour Copilot CLI.

Présentation

Copilot CLI a plusieurs options de configuration qui contrôlent ce qu’il peut accéder et faire en votre nom.

Cet article explique comment définir des répertoires approuvés, configurer l’accès pour les outils, accorder des autorisations aux chemins d’accès aux fichiers et aux URL, et désactiver les données de télémétrie côté client.

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 GitHub Copilot CLI session, vous êtes invité à confirmer que vous approuvez les fichiers dans et ci-dessous, le répertoire à partir duquel vous avez lancé l’interface CLI.

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 sûr que cet emplacement sera toujours un endroit sûr pour Copilot fonctionner.

Modification de répertoires approuvés

Vous pouvez modifier la liste des répertoires approuvés définitivement. Les répertoires approuvés sont stockés dans le fichier géré config.json automatiquement.

  1. Ouvrez le fichier config.json du 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 variable d’environnement COPILOT_HOME . Cela modifierait ~/.copilot/ et $HOME\.copilot\ dans les chemins ci-dessus.

  1. Modifiez le contenu du trustedFolders tableau.

Définition des outils autorisés

Vous pouvez contrôler quels outils Copilot CLI peuvent utiliser, soit en répondant aux invites d’approbation lorsque Copilot tente d’utiliser un outil, soit en spécifiant des autorisations via des options 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 à :

Autorisation d’un outil pour la première fois

En mode d’approbation manuelle, Copilot vous invite à approuver les demandes d’outils qui ne sont pas déjà autorisées —par exemple, touch, chmod, node ou sed. Le fait qu’une demande vous soit présentée dépend des autorisations en vigueur et de la façon dont l’outil est utilisé, notamment de ses arguments ou des approbations précédentes.

  1. Démarrez une session interactive en exécutant copilot, puis entrez /permissions manual.

  2. Invite Copilot à effectuer une tâche qui nécessite un outil. Par exemple:

    Create a new file called README.md with a project description
    
  3. Si l’outil n’est pas déjà autorisé, choisissez parmi les options d’approbation :

    • 1. Yes

      Choisissez cette option pour autoriser Copilot l’exécution de 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 l’utilisation de 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 quelque manière qu’il pense être approprié.

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

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

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

Autoriser l’utilisation d’outils sans approbation manuelle

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

Vous pouvez également réduire les invites d’approbation sans accorder d’autorisations générales, entrez /permissions assisted dans une session interactive. Avec assisted permissions, un grand modèle de langage évalue les demandes d’autorisation éligibles et approuve automatiquement celles qu’il juge sûres. Les autorisations existantes et les règles d’entreprise s’appliquent toujours, et les demandes qui nécessitent toujours votre approbation vous sont soumises. Pour plus d’informations, consultez « Autoriser l’exécution de commandes sécurisées sans approbation manuelle ».

Autorisation de tous les outils

Utilisez l’option --allow-all-tools permettant Copilot d’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

Permet --allow-tool d’utiliser Copilot un outil spécifique sans demander 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 :

Autorisation ou refus des commandes shell

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

  • Par exemple, pour empêcher Copilot l’utilisation d’une rm commande, 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' permet Copilot d’utiliser n’importe quelle commande shell 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 l’utilisation de 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 dans le mode interactif de Copilot CLI et en sélectionnant le serveur dans la liste affichée.

Autoriser certains outils tout en refusant d’autres

Pour déterminer exactement quels outils Copilot peuvent utiliser 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 autoriser automatiquement tous les autres outils, utilisez :

    copilot --allow-all-tools --deny-tool='shell(rm)' --deny-tool='shell(git push)'
    
  • Pour empêcher Copilot l’utilisation de l’outil tool_name à partir du serveur MCP nommé My-MCP-Server, mais autoriser l’utilisation de tous les autres outils de ce serveur 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.Copilot

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

Les autorisations de chemin contrôlent les répertoires et fichiers Copilot auxquels accéder.

Par défaut, Copilot CLI il 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’option --allow-all-paths au démarrage de 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’option --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

Cette option 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).

Pendant une session interactive, vous pouvez également activer toutes les autorisations avec la /permissions allow-all commande barre oblique, ou ses alias /allow-all et /yolo.

Remarque

Si vous avez une licence Copilot Business ou Copilot Enterprise, ces commandes peuvent être bloquées par un administrateur de l’entreprise.

Limiter l’accès aux fichiers

Les différentes --allow-all... options vous évitent d’avoir à décider s’il faut autoriser Copilot à accéder à des outils, fichiers et URL individuels. Toutefois, leur utilisation élargit les possibilités pour Copilot d’effectuer des actions que vous ne souhaiterez peut-être pas, par exemple, modifier des fichiers en dehors du référentiel dans lequel vous travaillez.

Pour atténuer ce risque, vous pouvez demander à l’interface CLI d’exécuter ses commandes dans un bac à sable (bac à sable local) ou exécuter la session entière Copilot CLI dans un bac à sable cloud. Pour plus d’informations, consultez « À propos du bac à sable local pour GitHub Copilot » et « À propos des sandboxs cloud pour GitHub Copilot ».

Désactivation de la télémétrie côté client

Pour désactiver les données de télémétrie côté client de première partie pour l’appel actuel, commencez Copilot CLI par l’option --disable-client-telemetry suivante :

copilot --disable-client-telemetry

Cette option désactive les données de télémétrie de première partie envoyées par le CLI, notamment les données de télémétrie non restreintes et restreintes. Il n’est pas enregistré dans votre configuration.

L’option ne désactive GitHubpas la collecte côté serveur des données de session ou des données de télémétrie. Elle n’affecte pas non plus les éléments suivants :

  • Les exportations OpenTelemetry configurées par vous ou votre entreprise.
  • Les données de télémétrie envoyées à une application qui utilise le Copilot SDK, lorsque cette application active explicitement le transfert de données de télémétrie lorsqu’elle se connecte à l’interface CLI.

Lectures complémentaires