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é ?

Les administrateurs de référentiel et les propriétaires d’organisation peuvent gérer les paramètres d’exclusion de contenu.

Les personnes disposant du rôle « Maintenir » pour un référentiel peuvent afficher, mais pas modifier, les paramètres d’exclusion de contenu pour ce référentiel.

Organisations avec un abonnement à GitHub Copilot Business ou GitHub Copilot Enterprise

À propos des exclusions de contenu pour Copilot.

Note

Le contenu exclu de GitHub Copilot est actuellement en beta. Des modifications peuvent être apportées.

Les exclusions de contenu vous permettent de configurer Copilot pour ignorer certains fichiers de votre dépôt ou organisation. 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.

Les paramètres d'exclusion de contenu s’appliquent uniquement aux membres de l’organisation pour laquelle l’exclusion de contenu a été configurée, qui ont obtenu un siège dans le cadre d’un abonnement GitHub Copilot Business ou GitHub Copilot Enterprise.

Toute autre personne qui peut accéder aux fichiers spécifiés verra toujours les suggestions de saisie de code et les réponses GitHub Copilot Chat référençant les fichiers spécifiés.

Limitations des exclusions de contenu

Les exclusions de contenu ne sont actuellement pas disponibles pour Copilot Chat dans Visual Studio, Copilot Chat dans GitHub.com, ou la saisie semi-automatique du code dans Azure Data Studio. Voici quelques ajustements supplémentaires :

  • Dans Copilot Chat in Visual Studio Code, les exclusions de contenu ne sont pas appliquées lorsque vous utilisez le participant à la conversation @github dans votre question.
  • 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. Dans GitHub.com, accédez à la page principale du dépôt.

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

  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 l’organisation pour spécifier le contenu de n’importe quel référentiel Git que GitHub Copilot doit ignorer.

  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 la zone suivant « Référentiels et chemins d’accès à exclure », entrez les détails des emplacements où Copilot doit être exclu.

    Pour chaque référentiel dont vous souhaitez que les fichiers soient exclus 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 at any path, in any repository. This setting applies to all repositories, not just to those on GitHub.com. 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 at any path, in any repository.
# This setting applies to all repositories, not just to those on GitHub.com.
# 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 :
    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 les IDE JetBrains et Visual Studio Code, 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.
    • 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.

Pour aller plus loin