Skip to main content

Configuration des exclusions de contenu pour GitHub Copilot

Vous pouvez empêcher les fichiers spécifiés d’être utilisés pour alimenter les suggestions de saisie semi-automatique du code émises par GitHub Copilot. GitHub Copilot ne sera pas disponible dans les fichiers exclus.

Qui peut utiliser cette fonctionnalité ?

Repository administrators and organization owners can manage the content exclusion settings for GitHub Copilot.

People with the "Maintain" role for a repository can view the content exclusion settings for that repository, but can't change these settings. For more information, see "Rôles de dépôt pour une organisation."

This feature is available for organization and enterprise accounts with a Copilot Business subscription, and for enterprise accounts with a Copilot Enterprise subscription.

Remarque :

  • Le contenu exclu de GitHub Copilot est actuellement en phase bêta publique. Des modifications peuvent être apportées.
  • Cette fonctionnalité est prise en charge dans Visual Studio, Visual Studio Code, les IDE JetBrains et neovim. Pour plus d’informations sur les ID JetBrains pris en charge, consultez « Bien démarrer avec GitHub Copilot ».

À propos de la configuration des exclusions de contenu

Avec l’exclusion de contenu, vous pouvez empêcher certains fichiers d’être disponibles pour GitHub Copilot. Vous pouvez configurer GitHub Copilot pour qu’il ignore ces fichiers. Pour ce faire, spécifiez des chemins d’accès pour exclure le contenu dans les paramètres de votre référentiel ou organisation.

Lorsque vous spécifiez des exclusions de contenu, deux effets se produisent :

  • GitHub Copilot n’utilisera pas le contenu des fichiers affectés pour alimenter les suggestions de saisie semi-automatique du code qu’il émet dans d’autres fichiers.
  • La saisie semi-automatique du code de GitHub Copilot ne sera pas disponible dans les fichiers concernés.

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. Vous pouvez apporter des modifications à votre propre IDE en le forçant à recharger les paramètres d'exclusion de contenu. Pour plus d’informations, consultez la section « Propagation des modifications d’exclusion de contenu vers votre IDE. »

Limites

  • L’exclusion du contenu de GitHub Copilot affecte uniquement la complétion du code. GitHub Copilot Chat n’est pas affecté par ces paramètres.
  • L'exclusion de contenu empêche Copilot d'accéder directement au contenu des fichiers exclus. Copilot peut tirer des informations sur les fichiers non exclus des informations sémantiques fournies par l'IDE – par exemple, des informations sur les types ou des définitions de pointage pour les symboles utilisés dans le code. Il est possible que l’IDE tire ces informations des fichiers exclus.

Que pouvez-vous exclure ?

Lorsque vous spécifiez l'exclusion de contenu dans les paramètres d'un référentiel, vous ne pouvez exclure que les fichiers de ce référentiel.

Lorsque vous spécifiez l'exclusion de contenu dans les paramètres d'une organisation, vous pouvez exclure des fichiers dans n'importe quel référentiel Git hébergé sur GitHub.com ou partout où l'on peut accéder à l'aide de l'une des syntaxes suivantes :

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/

Remarque : il est important de savoir que le contenu peut être exclu par les paramètres de toute organisation GitHub ayant un abonnement Copilot Business ou Copilot Enterprise. Les fichiers exclus peuvent se trouver dans un référentiel qui n'appartient pas à l'organisation dans laquelle l'exclusion a été définie. Les fichiers exclus peuvent également se trouver dans un référentiel Git qui n'est pas hébergé sur GitHub.

Qui est affecté par un paramètre d'exclusion de contenu ?

Les paramètres d'exclusion de contenu de GitHub Copilot ne s'appliquent pas à tous ceux qui utilisent Copilot.

Un paramètre d'exclusion de contenu s’applique uniquement aux personnes qui ont obtenu un siège dans le cadre d’un abonnement GitHub Copilot Business ou GitHub Copilot Enterprise et qui sont membres de la même entreprise dans laquelle l’exclusion de contenu est configurée. Les autres utilisateurs qui peuvent accéder aux fichiers spécifiés ne seront pas affectés par l’exclusion de contenu et verront toujours les suggestions de complétion du code.

Vous ne pouvez pas spécifier d’exclusions de contenu dans les paramètres d’une entreprise. Cependant, toutes les exclusions de contenu définies dans les paramètres de l'organisation ou du référentiel s’appliquent à tous les membres de l’entreprise qui ont reçu un siège Copilot dans le cadre d’un abonnement Copilot Business ou Copilot Enterprise.

Cela signifie, par exemple, que si vous êtes administrateur d'une organisation appartenant à une Entreprise X, vous pouvez configurer une exclusion pour les fichiers de tous les référentiels Git, hébergés sur GitHub ou ailleurs, et l'exclusion s'appliquera à toute personne qui obtient sa licence Copilot Business ou Copilot Enterprise auprès de n'importe quelle organisation de l'Entreprise X.

Il est toutefois recommandé, lorsqu’une exclusion est définie pour un référentiel GitHub, de la définir soit dans les paramètres de ce référentiel, soit dans les paramètres de l’organisation propriétaire du référentiel. Cela permet une identification plus facile des exclusions en place pour un référentiel que si vous définissiez les exclusions dans les paramètres d’une autre organisation de l’entreprise.

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. Les URL envoyées au serveur de cette manière ne sont journalisées nulle part.

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 d’organisations dans la même entreprise, vous verrez une ou plusieurs zones grises en haut de la page contenant les détails de ces exclusions. Vous ne pouvez pas modifier ces paramètres.

    Remarque : les exclusions qui affectent votre référentiel peuvent être définies dans les paramètres de n’importe quelle organisation de votre entreprise GitHub, en plus de celles définies dans les paramètres de votre référentiel.

  4. Dans la zone sous Chemins d’accès à exclure dans ce référentiel, saisissez les chemins d’accès aux fichiers desquels Copilot doit être exclu.

    Capture d’écran de la zone de texte Chemins d’accès à exclure dans les paramètres du référentiel pour Copilot.

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

    Vous pouvez utiliser la notation de correspondance de modèle fnmatch pour spécifier les chemins d’accès aux fichiers. Pour plus d’informations, consultez « Fichier » dans la documentation ruby-doc.org.

    Remarque : les modèles ne respectent pas la casse.

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 secret anywhere in this repository.

- "*.cfg"

Ignore files whose names end .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 `secret` anywhere in this repository.
- "secret*"

# Ignore files whose names end `.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 que GitHub Copilot doit ignorer.

  1. Dans l’angle supérieur droit de GitHub.com, sélectionnez votre photo de profil, puis sur Vos organisations.

    Capture d’écran du menu déroulant sous l’image de profil de @octocat. « Vos organisations » est présenté en orange foncé.

  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 sous 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 :

    REPOSITORY-REFERENCE:
      - "/PATH/TO/DIRECTORY/OR/FILE"
      - "/PATH/TO/DIRECTORY/OR/FILE"
      - ...
    

    La syntaxe suivante est prise en charge pour REPOSITORY-REFERENCE :

    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/
    

    Remarques :

    • 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.
    • Chaque référence de référentiel peut contenir un caractère générique * unique. Par exemple, https://github.com/octo-org/* correspond à tous les référentiels de l’organisation octo-org.

    Vous pouvez utiliser la notation de correspondance de modèle fnmatch pour spécifier les chemins d’accès aux fichiers. Pour plus d’informations, consultez « Fichier » dans la documentation ruby-doc.org.

    Remarque : les modèles ne respectent pas la casse.

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 server or session, anywhere in this repository.

  - "*.m[dk]"

Ignore any files with names ending .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 `server` or `session`, anywhere in this repository.
  - "{server,session}*"
  # Ignore any files with names ending `.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/**"

Révision des modifications apportées aux paramètres d’exclusion de contenu

Si vous êtes un propriétaire d’organisation, vous pouvez vérifier les modifications apportées aux exclusions de contenu.

  1. Ouvrez la page Exclusion de contenu dans les paramètres de votre organisation (comme décrit ici) ou les paramètres d’un référentiel (comme décrit ici).

  2. Faites défiler vers le bas de la page.

    Vous verrez le nom de la personne qui a modifié les paramètres pour la dernière fois et des informations sur le moment où elle a effectué cette modification.

  3. Cliquez sur l’heure de la dernière modification.

    Capture d’écran des informations sur la dernière modification. Le lien de l’heure de la modification est mis en évidence dans un encadré orange foncé.

    Remarque : l’heure de la dernière modification n’est qu’un lien si vous êtes un propriétaire d’organisation.

    La page Journal d’audit de l’organisation s’affiche, vous montrant les occurrences journalisées les plus récentes de l’action copilot.content_exclusion_changed.

    Si vous êtes arrivé ici après avoir suivi un lien sur la page des paramètres d’un référentiel, le journal d’audit est filtré pour afficher uniquement les modifications apportées aux exclusions de contenu pour ce référentiel.

  4. Cliquez sur les points de suspension (…) à la fin de chaque entrée pour afficher plus de détails.

    Si l’entrée excluded_paths est tronquée, pointez sur la valeur tronquée pour afficher l’entrée complète. Le contenu des paramètres d’exclusion après l’enregistrement de la modification s’affiche alors.

    Capture d’écran des détails du journal d’audit pour l’action copilot.content_exclusion_changed. Le bouton des points de suspension est mis en surbrillance.

Vérification de l’effet d’une modification des paramètres

Lorsque vous modifiez les exclusions de contenu de Copilot, vous pouvez vérifier que le paramètre empêche Copilot de suggérer du code dans les fichiers spécifiés.

Pour confirmer que Copilot est désactivé pour un fichier, ouvrez le fichier dans l'éditeur et commencez à saisir une ligne de code, par exemple un commentaire. En temps normal, Copilot vous fournirait une suggestion de saisie semi-automatique de code au fur et à mesure que vous écrivez. Si Copilot est désactivé par une exclusion de contenu, les suggestions de finalisation de code ne seront pas proposées et le contenu du fichier ne sera pas utilisé pour générer des suggestions dans d'autres fichiers.

Vérification des modifications des paramètres dans votre IDE

Si vous travaillez dans Visual Studio, VS Code, ou dans un IDE JetBrains pris en charge, l'icône Copilot indique que Copilot a été désactivé par une exclusion de contenu.

  1. Ouvrez un fichier qui devrait être affecté par vos exclusions de contenu.

    Si une exclusion de contenu Copilot s’applique à ce fichier, une ligne diagonale barre l’icône Copilot dans la barre d’état.

  2. Passez sur cette icône. Un message contextuel vous indique si une organisation ou le référentiel parent a désactivé Copilot pour ce fichier.

    Capture d'écran de la fenêtre contextuelle Copilot désactivée dans la barre d'outils VS Code.

Remarque : dans Visual Studio et VS Code, vous pouvez afficher le journal de l'extension Copilot pour consulter les détails des exclusions de contenu sans avoir à passer sur l'icône Copilot. Pour plus d’informations, consultez « Affichage des journaux d’activité pour GitHub Copilot dans votre environnement ».

Propagation des modifications d’exclusion de contenu dans votre IDE

Si vous travaillez dans Neovim, les exclusions de contenu sont extraites de GitHub chaque fois que vous ouvrez un fichier. Toutefois, si vous travaillez dans Visual Studio, VS Code, ou dans un IDE JetBrains pris en charge, vous devrez peut-être attendre jusqu'à 30 minutes avant de voir l'effet d'une modification de paramètres. Vous pouvez également recharger manuellement les paramètres d’exclusion de contenu dans votre IDE.

Pour recharger les exclusions de contenu dans Visual Studio, fermez et rouvrez l'application.

Pour recharger les exclusions de contenu dans VS Code :

  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.

Pour recharger les exclusions de contenu dans votre IDE JetBrains, fermez et rouvrez l'application, ou déconnectez-vous de GitHub et reconnectez-vous, comme suit.

  1. Cliquez sur l'icône Copilot dans la barre d'état et sélectionnez Déconnection de GitHub.
  2. L'icône Copilot de la barre d'état est désormais traversée par une ligne diagonale. Cliquez dessus et sélectionnez Connexion à GitHub.
  3. Le message « Se connecter à GitHub » s'affiche avec un code d'appareil. Cliquez sur Copier et Ouvrir.
  4. Dans la page « Device activation » (Activation de l’appareil), collez le code de l'appareil, puis cliquez sur Continuer.
  5. Sur la page suivante, cliquez sur Autoriser le plug-in GitHub Copilot.

Pour aller plus loin