Skip to main content

Exclusion de contenu de GitHub Copilot

Apprenez à 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 disposant d’un plan Copilot Business ou Copilot Enterprise.

Configuration de l’exclusion 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, puis sur Exclusion de contenu.

    Si votre référentiel hérite d’exclusions de son organisation parente ou d’organisations de la même entreprise, une ou plusieurs zones grises s’affichent 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 #.

    Conseil

    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 de l’exclusion 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 cliquez 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.

    Conseil

    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 de l’exclusion 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. En haut de la page, 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 de l’exclusion de contenu pour votre organisation.

Remarque

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

Vous pouvez vérifier que les exclusions de contenu que vous avez configurées fonctionnent comme prévu.

  1. Vérifiez d’abord que l’exclusion de contenu fonctionne dans les fichiers qui ne sont pas soumis à l’exclusion de contenu. Pour ce faire :
    • Dans votre IDE, ouvrez un fichier qui n’est pas soumis à l’exclusion de contenu.
    • Effectuez une modification qui générerait normalement une suggestion de complétion de code. Une suggestion doit être proposée
  2. Ouvrez un fichier qui doit être exclu et effectuez la même modification. Aucune suggestion ne doit être proposée.
  3. Pour tester l’exclusion de contenu pour Copilot Chat :
    • Dans votre IDE, ouvrez le panneau Copilot Chat.

    • Ouvrez un fichier qui doit être exclu et fermez tous les autres fichiers ouverts dans l’éditeur.

    • Assurez-vous que le fichier ouvert est joint au prompt en tant que fichier de contexte.

    • Entrez l’invite explain this file.

      Si le fichier est exclu, Copilot Chat ne pourra pas utiliser le fichier pour générer une réponse. Le fichier ne sera pas répertorié comme référence dans la réponse de Copilot.

Pour aller plus loin