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
- Installez Copilot CLI. Consultez Installation de GitHub Copilot CLI.
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.
- Ouvrez le fichier
config.jsonde la CLI. Par défaut, il est stocké dans un.copilotdossier 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).
- Modifiez le contenu du
trusted_folderstableau.
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é).
-
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" -
Choisissez parmi l’une des trois options suivantes :
-
1. YesChoisissez 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 sessionChoisissez 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.txtet que vous choisissez l’option 2, Copilot peut alors exécuter n’importe quelle commanderm(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
rmquelconque, 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
rmetgit 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_namedu 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_DIRne 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)