À propos des exclusions de contenu pour Copilot.
Vous pouvez utiliser des exclusions de contenu pour configurer Copilot afin d'ignorer certains fichiers. Lorsque vous excluez du contenu de Copilot :
- L'achèvement du code ne sera pas disponible dans les fichiers concernés.
- Le contenu des fichiers concernés n'informera pas les suggestions d'achèvement du code dans d'autres fichiers.
- Le contenu des fichiers concernés n'informera pas les réponses de GitHub Copilot Chat.
Qui peut configurer l’exclusion de contenu
Les administrateurs de référentiels et les propriétaires d'organisations peuvent configurer l'exclusion de contenu.
- ** administrateurs de référentiels** peuvent exclure que le contenu de leurs propres référentiels. Cela affecte les utilisateurs Copilot travaillant dans ces référentiels spécifiques.
- Les propriétaires de l’organisation peuvent exclure du contenu pour les utilisateurs affectés à un siège Copilot par l’intermédiaire de leur organisation.
Disponibilité des exclusions de contenu
Outil | Prise en charge de l’achèvement du code | Prise en charge de Copilot Chat |
---|---|---|
Visual Studio | ||
Visual Studio Code | ||
IDE JetBrains | ||
Vim/Neovim | Non applicable | |
Xcode | Non applicable | |
Azure Data Studio | Non applicable | |
Le site Web GitHub | Non applicable | |
GitHub Mobile | Non applicable |
Limitations des exclusions de contenu
Il est possible que Copilot utilise des informations sémantiques d’un fichier exclu si les informations sont fournies indirectement par l’IDE. Parmi les exemples de ce type de contenu, citons les informations sur le type et les définitions de pointage pour les symboles utilisés dans le code, ainsi que les propriétés générales du projet telles que les informations sur la configuration de build.
Données envoyées à GitHub
Après avoir configuré l'exclusion de contenu, le client (par exemple, l'extension Copilot pour VS Code) envoie l'URL du référentiel actuel au serveur GitHub afin que le serveur puisse renvoyer la stratégie correcte au client. Ces URL ne sont pas journalisées n’importe où.
Configuration des exclusions de contenu pour votre référentiel
Vous pouvez utiliser les paramètres du référentiel pour spécifier du contenu dans le référentiel que GitHub Copilot doit ignorer.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.
-
Dans la section Code et automatisation de la barre latérale, cliquez sur Copilot.
Si votre référentiel hérite d’exclusions de son organisation parente, vous verrez une zone grise en haut de la page contenant les détails de ces exclusions. Vous ne pouvez pas modifier ces paramètres.
-
Dans la zone suivant « Chemins d’accès à exclure dans ce référentiel », saisissez les chemins d’accès aux fichiers desquels Copilot doit être exclu.
Utilisez le format
- "/PATH/TO/DIRECTORY/OR/FILE"
avec chaque chemin d’accès sur une ligne distincte. Vous pouvez ajouter des commentaires en commençant une ligne avec le caractère#
.Tip
Vous pouvez utiliser la notation de correspondance de modèle fnmatch pour spécifier les chemins d’accès aux fichiers. Les modèles ne respectent pas la casse. Consultez « Fichier » dans la documentation ruby-doc.org.
Exemple de chemins d’accès spécifiés dans les paramètres du référentiel
# Ignore the `/src/some-dir/kernel.rs` file in this repository. - "/src/some-dir/kernel.rs" # Ignore files called `secrets.json` anywhere in this repository. - "secrets.json" # Ignore all files whose names begin with `secret` anywhere in this repository. - "secret*" # Ignore files whose names end with `.cfg` anywhere in this repository. - "*.cfg" # Ignore all files in or below the `/scripts` directory of this repository. - "/scripts/**"
- "/src/some-dir/kernel.rs"
Ignore the /src/some-dir/kernel.rs
file in this repository.
- "secrets.json"
Ignore files called secrets.json
anywhere in this repository.
- "secret*"
Ignore all files whose names begin with secret
anywhere in this repository.
- "*.cfg"
Ignore files whose names end with .cfg
anywhere in this repository.
- "/scripts/**"
Ignore all files in or below the /scripts
directory of this repository.
# Ignore the `/src/some-dir/kernel.rs` file in this repository.
- "/src/some-dir/kernel.rs"
# Ignore files called `secrets.json` anywhere in this repository.
- "secrets.json"
# Ignore all files whose names begin with `secret` anywhere in this repository.
- "secret*"
# Ignore files whose names end with `.cfg` anywhere in this repository.
- "*.cfg"
# Ignore all files in or below the `/scripts` directory of this repository.
- "/scripts/**"
Configuration des exclusions de contenu pour votre organisation
Vous pouvez utiliser les paramètres de votre organisation pour spécifier les fichiers que GitHub Copilot doit ignorer. Les fichiers peuvent se trouver dans un référentiel Git ou n’importe où sur le système de fichiers qui n’est pas sous contrôle Git.
-
Dans le coin supérieur droit de GitHub, sélectionnez votre photo de profil, puis cliquez sur Vos organisations.
-
En regard de l’organisation, cliquez sur Paramètres.
-
Dans la barre latérale gauche, cliquez sur Copilot, puis sur Exclusion de contenu.
-
Dans le champ suivant « Référentiels et chemins à exclure », entrez les détails des fichiers dont Copilot doit être exclu.
Pour exclure des fichiers situés n’importe où (dans un référentiel Git ou ailleurs), entrez
"*":
suivi du chemin d'accès au(x) fichier(s) que vous souhaitez exclure. Si vous souhaitez spécifier plusieurs modèles de chemin d'accès de fichier, répertoriez chaque modèle sur une ligne distincte.Pour exclure les fichiers d'un référentiel Git de Copilot, entrez une référence au référentiel sur une ligne, suivie des chemins d'accès aux emplacements du référentiel, en vous assurant de créer une nouvelle ligne pour chaque chemin d'accès. Utilisez le format suivant, en remplaçant
REPOSITORY-REFERENCE
par une référence au dépôt qui contient les fichiers que vous souhaitez exclure :REPOSITORY-REFERENCE: - "/PATH/TO/DIRECTORY/OR/FILE" - "/PATH/TO/DIRECTORY/OR/FILE" - ...
Les référentiels peuvent être référencés à l’aide de différents protocoles. Vous pouvez utiliser l’une des syntaxes suivantes pour
REPOSITORY-REFERENCE
et Copilot correspondera à celles-ci, quelle que soit la façon dont le référentiel a été cloné localement :http[s]://host.xz[:port]/path/to/repo.git/ git://host.xz[:port]/path/to/repo.git/ [user@]host.xz:path/to/repo.git/ ssh://[user@]host.xz[:port]/path/to/repo.git/
Les parties
user@
et:port
deREPOSITORY-REFERENCE
sont ignorées dans le calcul des chemins d’accès à ignorer pour un référentiel.Pour Azure DevOps, vous pouvez utiliser le nouveau (dev.azure.com) ou l'ancien (visualstudio.com) format d'hôte lorsque vous spécifiez
REPOSITORY-REFERENCE
, et Copilot leur correspondra quel que soit l'hôte utilisé pour cloner le référentiel localement.Tip
Vous pouvez utiliser la notation de correspondance de modèle fnmatch pour spécifier les chemins d’accès aux fichiers. Les modèles ne respectent pas la casse. Consultez « Fichier » dans la documentation ruby-doc.org.
Exemple de référentiels et de chemins d’accès dans les paramètres de l’organisation
# Ignore all `.env` files from all file system roots (Git and non-Git). # For example, this excludes `REPOSITORY-PATH/.env` and also `/.env`. # This could also have been written on a single line as: # # "*": ["**/.env"] "*": - "**/.env" # In the `octo-repo` repository in this organization: octo-repo: # Ignore the `/src/some-dir/kernel.rs` file. - "/src/some-dir/kernel.rs" # In the `primer/react` repository on GitHub: https://github.com/primer/react.git: # Ignore files called `secrets.json` anywhere in this repository. - "secrets.json" # Ignore files called `temp.rb` in or below the `/src` directory. - "/src/**/temp.rb" # In the `copilot` repository of any GitHub organization: git@github.com:*/copilot: # Ignore any files in or below the `/__tests__` directory. - "/__tests__/**" # Ignore any files in the `/scripts` directory. - "/scripts/*" # In the `gitlab-org/gitlab-runner` repository on GitLab: git@gitlab.com:gitlab-org/gitlab-runner.git: # Ignore the `/main_test.go` file. - "/main_test.go" # Ignore any files with names beginning with `server` or `session` anywhere in this repository. - "{server,session}*" # Ignore any files with names ending with `.md` or `.mk` anywhere in this repository. - "*.m[dk]" # Ignore files directly within directories such as `packages` or `packaged` anywhere in this repository. - "**/package?/*" # Ignore files in or below any `security` directories, anywhere in this repository. - "**/security/**"
"*":
- "**/.env"
Ignore all .env
files from all file system roots (Git and non-Git).
For example, this excludes REPOSITORY-PATH/.env
and also /.env
.
This could also have been written on a single line as:
"*": ["**/.env"]
octo-repo:
In the octo-repo
repository in this organization:
- "/src/some-dir/kernel.rs"
Ignore the /src/some-dir/kernel.rs
file.
https://github.com/primer/react.git:
In the primer/react
repository on GitHub:
- "secrets.json"
Ignore files called secrets.json
anywhere in this repository.
- "/src/**/temp.rb"
Ignore files called temp.rb
in or below the /src
directory.
git@github.com:*/copilot:
In the copilot
repository of any GitHub organization:
- "/__tests__/**"
Ignore any files in or below the /__tests__
directory.
- "/scripts/*"
Ignore any files in the /scripts
directory.
git@gitlab.com:gitlab-org/gitlab-runner.git:
In the gitlab-org/gitlab-runner
repository on GitLab:
- "/main_test.go"
Ignore the /main_test.go
file.
- "{server,session}*"
Ignore any files with names beginning with server
or session
anywhere in this repository.
- "*.m[dk]"
Ignore any files with names ending with .md
or .mk
anywhere in this repository.
- "**/package?/*"
Ignore files directly within directories such as packages
or packaged
anywhere in this repository.
- "**/security/**"
Ignore files in or below any security
directories, anywhere in this repository.
# Ignore all `.env` files from all file system roots (Git and non-Git).
# For example, this excludes `REPOSITORY-PATH/.env` and also `/.env`.
# This could also have been written on a single line as:
#
# "*": ["**/.env"]
"*":
- "**/.env"
# In the `octo-repo` repository in this organization:
octo-repo:
# Ignore the `/src/some-dir/kernel.rs` file.
- "/src/some-dir/kernel.rs"
# In the `primer/react` repository on GitHub:
https://github.com/primer/react.git:
# Ignore files called `secrets.json` anywhere in this repository.
- "secrets.json"
# Ignore files called `temp.rb` in or below the `/src` directory.
- "/src/**/temp.rb"
# In the `copilot` repository of any GitHub organization:
git@github.com:*/copilot:
# Ignore any files in or below the `/__tests__` directory.
- "/__tests__/**"
# Ignore any files in the `/scripts` directory.
- "/scripts/*"
# In the `gitlab-org/gitlab-runner` repository on GitLab:
git@gitlab.com:gitlab-org/gitlab-runner.git:
# Ignore the `/main_test.go` file.
- "/main_test.go"
# Ignore any files with names beginning with `server` or `session` anywhere in this repository.
- "{server,session}*"
# Ignore any files with names ending with `.md` or `.mk` anywhere in this repository.
- "*.m[dk]"
# Ignore files directly within directories such as `packages` or `packaged` anywhere in this repository.
- "**/package?/*"
# Ignore files in or below any `security` directories, anywhere in this repository.
- "**/security/**"
Test des modifications d'exclusions de contenu
Vous pouvez utiliser votre IDE pour confirmer que les modifications apportées aux exclusions de contenu fonctionnent comme prévu.
Propagation des modifications d'exclusions de contenu dans votre IDE
Après avoir ajouté ou modifié des exclusions de contenu, 30 minutes peuvent s’écouler avant qu’elles ne prennent effet dans les IDE où les paramètres sont déjà chargés. Si vous ne souhaitez pas attendre, vous pouvez recharger manuellement les paramètres d’exclusion de contenu en effectuant les instructions suivantes.
- Pour les IDE JetBrains et Visual Studio, rechargez les paramètres d’exclusion de contenu en fermant et rouvrant l’application.
- Pour Visual Studio Code, procédez comme suit pour recharger les paramètres d’exclusion de contenu :
- Accédez à la palette de commandes. Par exemple, en appuyant sur Maj+Commande+P (Mac)/Ctrl+Maj+P (Windows/Linux).
- Entrez :
reload
. - Sélectionnez Développeur : Recharger la fenêtre.
- Dans Vim/Neovim, les exclusions de contenu sont automatiquement extraites de GitHub chaque fois que vous ouvrez un fichier.
Test de vos exclusions de contenu
Il existe plusieurs façons de tester vos exclusions de contenu, selon l’IDE que vous utilisez.
- Ouvrez un fichier qui devrait être affecté par vos exclusions de contenu.
- Utilisez une ou plusieurs des techniques suivantes pour tester si le contenu est exclu :
- Dans les IDE JetBrains, Visual Studio, et Visual Studio Code, vérifiez l’icône Copilot dans la barre d’état. Si une exclusion de contenu Copilot s’applique au fichier, une ligne diagonale barre l’icône Copilot. Survolez l’icône pour voir si une organisation ou le dépôt parent a désactivé Copilot pour le fichier.
- Dans Vim/Neovim, commencez à écrire dans le fichier. Si GitHub Copilot ne fournit plus de suggestions en ligne lors de la saisie, le fichier est exclu.
- Vous pouvez également tester les exclusions de contenu dans Copilot Chat. Ouvrez la fenêtre Copilot Chat et posez à Copilot Chat une question sur le fichier exclu. Si votre contenu est exclu avec succès, Copilot ne pourra pas répondre à votre question et expliquera que certains fichiers ont été exclus de la conversation en raison des règles d’exclusion de contenu.