Skip to main content

Exclusion de contenu de GitHub Copilot

Vous pouvez empêcher Copilot d'accéder à certains contenus.

Qui peut utiliser cette fonctionnalité ?

Repository administrators, organization owners, and enterprise owners can manage content exclusion settings. People with the "Maintain" role for a repository can view, but not edit, content exclusion settings for that repository.

Organisations et entreprises avec un abonnement à GitHub Copilot Business ou GitHub Copilot Enterprise.

À 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, les propriétaires d'organisations et les propriétaires d'entreprises 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.

  • Les propriétaires d’entreprise peuvent appliquer des règles d’exclusion à tout les utilisateurs Copilot de l’entreprise.

Disponibilité des exclusions de contenu

OutilPrise en charge de l’achèvement du codePrise en charge de Copilot Chat
Visual Studio
Visual Studio Code
IDE JetBrains
Vim/NeovimNon applicable
XcodeNon applicable
Azure Data StudioNon applicable
Le site Web GitHubNon applicable
GitHub MobileNon 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 par l’IDE dans un fichier non exclu. Les exemples de ce contenu incluent les informations sur les types et les définitions de pointage pour les symboles utilisés dans le code.

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.

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. 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.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la section Code et automatisation de la barre latérale, cliquez sur Copilot.

    Si votre référentiel hérite d’exclusions de d’organisations dans la même entreprise, vous verrez une ou plusieurs en haut de la page contenant les détails de ces exclusions. Vous ne pouvez pas modifier ces paramètres.

  4. 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

YAML
- "/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.

  1. Dans le coin supérieur droit de GitHub, sélectionnez votre photo de profil, puis cliquez sur Vos organisations.

  2. En regard de l’organisation, cliquez sur Paramètres.

  3. Dans la barre latérale gauche, cliquez sur Copilot, puis sur Exclusion de contenu.

  4. 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 de REPOSITORY-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

YAML
"*":
  - "**/.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/**"

Configuration des exclusions de contenu pour votre entreprise

En tant que propriétaire d’entreprise, vous pouvez utiliser les paramètres d’entreprise pour spécifier des 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.

  1. Dans le coin supérieur droit de GitHub, cliquez sur votre photo de profil.
  2. En fonction de votre environnement, cliquez sur Votre entreprise ou sur Vos entreprises, puis cliquez sur l'entreprise que vous souhaitez consulter.
  3. Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Stratégies.
  4. Dans la section stratégies " ", cliquez sur Copilot.
  5. Cliquez sur l’onglet Exclusion de contenu.
  6. Utilisez les chemins d’accès pour spécifier le contenu à exclure. Consultez la section précédente, « Configuration des exclusions de contenu pour votre organisation ».

Note

La principale différence entre la configuration de l’exclusion de contenu au niveau de l’entreprise et au niveau de l’organisation est que les règles définies au niveau de l’entreprise s’appliquent à tous les utilisateurs de Copilot dans l’entreprise, tandis que les règles définies par les propriétaires d’organisation s’appliquent uniquement aux utilisateurs auxquels un poste Copilot est attribué par cette organisation.

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 :
    1. Accédez à la palette de commandes. Par exemple, en appuyant sur Maj+Commande+P (Mac)/Ctrl+Maj+P (Windows/Linux).
    2. Entrez : reload.
    3. 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.

  1. Ouvrez un fichier qui devrait être affecté par vos exclusions de contenu.
  2. 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.

Pour aller plus loin