Informationen über Inhaltsausschlüsse für Copilot
Note
Das Ausschließen von Inhalten aus GitHub Copilot befindet sich derzeit in der public preview und kann noch geändert werden.
Du kannst Inhaltsausschlüsse verwenden, um Copilot so zu konfigurieren, dass bestimmte Dateien ignoriert werden. Wenn Sie Inhalte aus Copilot ausschließen:
- Der Codeabschluss ist in den betroffenen Dateien nicht verfügbar.
- Der Inhalt in betroffenen Dateien informiert keine Codeabschlussvorschläge in anderen Dateien.
- Der Inhalt in den betroffenen Dateien informiert nicht über GitHub Copilot Chats Antworten.
Wer Inhaltsausschlüsse konfigurieren kann
Repository-Administratorinnen, Organisationsbesitzerinnen, und Enterprise-Besitzer*innen können Inhaltsausschlüsse konfigurieren.
- Repositoryadministrator*innen können nur Inhalte für ihre eigenen Repositorys ausschließen. Das wirkt sich auf Copilot-Benutzer*innen aus, die in diesen Repositorys arbeiten.
- Organisationsbesitzer*innen können Inhalte für Benutzer*innen ausschließen, denen ein Copilot-Arbeitsplatz über ihre Organisation zugewiesen wurde.
Note
In der aktuellen public preview-Version gelten die Einstellungen auf Organisationsebene für den Inhaltsausschluss in der Regel für alle Copilot-Benutzer*innen im Unternehmen. Das ändert sich mit der allgemeinen Verfügbarkeit (General Availability, GA) dieses Features am 8. November 2024.
Vor dem 8. November:
- Wenn Unternehmensbesitzer*innen keine Regeln festlegen: Bis zum 8. November gelten Regeln auf Organisationsebene weiterhin für alle Benutzer*innen im gesamten Unternehmen und funktionieren genauso wie jetzt.
- Wenn Unternehmensbesitzer*innen eine Regel festlegen: Sobald Regeln auf Unternehmensebene angewendet werden, gelten Regeln auf Organisationsebene nur für Benutzer*innen, denen ein Copilot-Arbeitsplatz über die Organisation zugewiesen wird, in der die Regel festgelegt ist.
Nach dem 8. November:
- Regeln auf Organisationsebene gelten nicht mehr unternehmensweit. Sie sind auf Benutzer*innen beschränkt, denen ein Copilot-Arbeitsplatz über die Organisation zugewiesen wird, in der die Regel festgelegt ist.
- Unternehmensbesitzer*innen können Ausschlussregeln auf alle Copilot-Benutzer*innen im Unternehmen anwenden.
Verfügbarkeit von Inhaltsausschlüssen
Tool | Unterstützung zur Code-Vervollständigung | Copilot Chat Support |
---|---|---|
Visual Studio | ||
Visual Studio Code | ||
JetBrains-IDEs | ||
Vim/Neovim | Nicht zutreffend | |
Azure Data Studio | Nicht zutreffend | |
GitHub-Webseite | Nicht zutreffend |
Einschränkungen von Inhaltsausschlüssen
- In Copilot Chat in Visual Studio Code und Visual Studio werden Inhaltsausschlüsse nicht angewendet, wenn Sie den
@github
-Chat-Teilnehmer in Ihrer Frage verwenden. - Es ist möglich, dass Copilot semantische Informationen aus einer ausgeschlossenen Datei verwenden kann, wenn die Informationen von der IDE in einer nicht ausgeschlossenen Datei bereitgestellt werden. Beispiele für solche Inhalte sind Typinformationen und Hover-Over-Definitionen für im Code verwendete Symbole.
An GitHub gesendete Daten
Wenn Sie den Inhaltsausschluss konfiguriert haben, sendet der Client (z. B. die Copilot-Erweiterung für VS Code) die aktuelle Repository-URL an den GitHub-Server, damit der Server die richtige Richtlinie an den Client zurücksenden kann. Diese URLs werden nicht an einer beliebigen Stelle protokolliert.
Konfigurieren von Inhaltsausschlüssen für Ihr Repository
Sie können Ihre Repositoryeinstellungen verwenden, um Inhalte in Ihrem Repository anzugeben, die von GitHub Copilot ignoriert werden sollen.
-
Klicke auf der Seitenleiste im Abschnitt „Code und Automatisierung“ auf Copilot.
Wenn Ihr Repository Ausschlüsse von Organisationen im selben Unternehmen erbt, wird mindestens graues Feldes oben auf der Seite mit Details zu diesen Ausschlüssen angezeigt. Sie können diese Einstellungen nicht bearbeiten.
-
Geben Sie im Feld nach „Pfade, die in diesem Repository ausgeschlossen werden sollen“ die Pfade zu Dateien ein, aus denen Copilot ausgeschlossen werden sollen.
Verwenden Sie das Format:
- "/PATH/TO/DIRECTORY/OR/FILE"
, mit jedem Pfad in einer separaten Zeile. Sie können Kommentare hinzufügen, indem Sie eine Zeile mit#
beginnen.Tip
Sie können die fnmatch-Mustervergleichsnotation verwenden, um Dateipfade anzugeben. Bei Mustern wird die Groß-/Kleinschreibung nicht beachtet. Siehe "Datei" in der ruby-doc.org Dokumentation.
Beispiel für Pfade, die in den Repositoryeinstellungen angegeben sind
# 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/**"
Konfigurieren von Inhaltsausschlüssen für Ihre Organisation
Du kannst deine Organisationseinstellungen verwenden, um Dateien anzugeben, die von GitHub Copilot ignoriert werden sollen. Die Dateien können sich innerhalb eines Git-Repositorys oder an einer beliebigen Stelle im Dateisystem befinden, die nicht unter einem Git-Steuerelement liegt.
-
Wählen Sie in der oberen rechten Ecke von GitHub Ihr Profilfoto aus, und klicken Sie dann auf Ihre Organisationen.
-
Klicke neben der Organisation auf Einstellungen.
-
Klicken Sie in der linken Randleiste auf Copilot und klicken Sie dann auf Inhaltsausschluss.
-
Gib im Feld nach „Repositorys und Pfade, die ausgeschlossen werden sollen“ die Details der Dateien ein, aus denen Copilot ausgeschlossen werden sollen.
Wenn du Dateien an einer beliebigen Stelle (innerhalb eines Git-Repositorys oder an anderer Stelle) ausschließen möchtest, gib
"*":
gefolgt vom Pfad zur Datei oder den Dateien ein, die du ausschließen möchtest. Wenn du mehrere Dateipfadmuster angeben möchtest, liste jedes Muster in einer separaten Zeile auf.Um Dateien in einem Git-Repository von Copilot auszuschließen, gib einen Verweis auf das Repository in einer Zeile ein, gefolgt von Pfaden zu Speicherorten innerhalb des Repositorys, wobei sich jeder Pfad in einer separaten Zeile befindet. Verwenden Sie das folgende Format, indem Sie
REPOSITORY-REFERENCE
mit einem Verweis auf das Repository ersetzen, das die Dateien enthält, die Sie ausschließen möchten:REPOSITORY-REFERENCE: - "/PATH/TO/DIRECTORY/OR/FILE" - "/PATH/TO/DIRECTORY/OR/FILE" - ...
Repositorys können mithilfe verschiedener Protokolle referenziert werden. Du kannst eine der folgenden Syntaxen für
REPOSITORY-REFERENCE
verwenden und Copilot wird sie unabhängig davon zuordnen, wie das Repository lokal geklont wurde: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/
Die Teile
user@
und:port
derREPOSITORY-REFERENCE
werden bei der Berechnung ignoriert, welche Pfade für ein Repository ignoriert werden sollen.Für Azure DevOps können Sie bei der Angabe von
REPOSITORY-REFERENCE
das neue (dev.azure.com) oder das alte (visualstudio.com) Hostformat verwenden, und Copilot stimmt mit ihnen überein, unabhängig davon, welcher Host zum lokalen Klonen des Repositorys verwendet wurde.Tip
Sie können die fnmatch-Mustervergleichsnotation verwenden, um Dateipfade anzugeben. Bei Mustern wird die Groß-/Kleinschreibung nicht beachtet. Siehe "Datei" in der ruby-doc.org Dokumentation.
Beispiel für Repositorys und Pfade in Organisationseinstellungen
# 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/**"
Konfigurieren von Inhaltsausschlüssen für Ihr Enterprise
Als Enterprise-Besitzer*in können Sie die Enterprise-Einstellungen verwenden, um Dateien anzugeben, die von GitHub Copilot ignoriert werden sollen. Die Dateien können sich innerhalb eines Git-Repositorys oder an einer beliebigen Stelle im Dateisystem befinden, die nicht unter einem Git-Steuerelement liegt.
-
Klicken Sie in der oberen rechten Ecke von GitHub auf Ihr Profilfoto und dann auf Ihre Unternehmen.
-
Klicke in der Liste der Unternehmen auf das Unternehmen, das du anzeigen möchtest.
-
Klicken Sie auf der linken Seite der Seite in der Randleiste des Enterprise-Kontos auf Richtlinien
-
Klicken Sie im Abschnitt „ Richtlinien“ auf Copilot.
-
Klicken Sie auf die Registerkarte Inhaltsausschluss.
-
Verwenden Sie Pfade, um anzugeben, welche Inhalte ausgeschlossen werden sollen. Weitere Informationen finden Sie im vorherigen Abschnitt „Konfigurieren von Inhaltsausschlüssen für Ihre Organisation“.
Note
Der Hauptunterschied zwischen dem Festlegen von Inhaltsausschlüssen auf Enterprise-Ebene und der Organisationsebene besteht darin, dass Regeln, die auf Enterprise-Ebene festgelegt sind, für alle Copilot-Benutzerinnen im Enterprise gelten, während die von Organisationsbesitzerinnen festgelegten Regeln nur für Benutzer*innen gelten, denen ein Copilot-Arbeitsplatz von dieser Organisation zugewiesen wurde.
Testen von Änderungen an Inhaltsausschlüssen
Sie können Ihre IDE verwenden, um zu überprüfen, ob Ihre Änderungen an den Inhaltsausschlüssen wie erwartet funktionieren.
Weitergabe von Änderungen am Inhaltsausschluss an Ihre IDE
Nachdem dem Hinzufügen oder Ändern von Inhaltsausschlüssen kann es bis zu 30 Minuten dauern, bis sie in IDEs wirksam wird, in denen die Einstellungen bereits geladen wurden. Wenn Sie nicht warten möchten, können Sie die Einstellungen zum Inhaltsausschluss mithilfe der folgenden Anweisungen manuell neu laden.
- Laden Sie für JetBrains-IDEs und Visual Studio die einstellungen zum Inhaltsausschluss neu, indem Sie die Anwendung schließen und erneut öffnen.
- Führen Sie für Visual Studio Code die folgenden Schritte aus, um die Einstellungen zum Inhaltsausschluss neu zu laden:
- Öffne die Befehlspalette. Zum Beispiel durch Drücken von UMSCHALT+Befehlstaste+P (Mac) / STRG+UMSCHALT+P (Windows/Linux).
- Geben Sie Folgendes ein:
reload
. - Wählen Sie Developer: Fenster erneut laden aus.
- Für Vim/Neovim werden Inhaltsausschlüsse jedes Mal, wenn Sie eine Datei öffnen, automatisch aus GitHub abgerufen.
Testen Ihrer Inhaltsausschlüsse
Es gibt einige verschiedene Möglichkeiten zum Testen Ihrer Inhaltsausschlüsse, je nachdem, welche IDE Sie verwenden.
- Öffnen Sie eine Datei, die Ihrer Meinung nach von Inhaltsausschlüssen betroffen ist.
- Verwenden Sie eine oder mehrere der folgenden Techniken, um zu testen, ob Inhalte ausgeschlossen werden:
- Prüfen Sie in JetBrains IDEs Visual Studio, and Visual Studio Code das Symbol Copilot in der Statusleiste. Wenn ein Copilot-Inhaltsausschluss für die Datei gilt, weist das Symbol Copilot eine diagonale Linie darauf auf. Bewegen Sie den Mauszeiger über das Symbol, um zu sehen, ob eine Organisation oder das übergeordnete Repository Copilot für die Datei deaktiviert hat.
- In JetBrains-IDEs, Visual Studio und Visual Studio Code können Sie auch Inhaltsausschlüsse in Copilot Chat testen. Öffnen Sie das Fenster Copilot Chat und stellen Sie Copilot Chat eine Frage zur ausgeschlossenen Datei. Wenn Ihre Inhalte erfolgreich ausgeschlossen werden, können Copilot Ihre Frage nicht beantworten und erklären, dass einige Dateien aufgrund von Inhaltsausschlussregeln von der Unterhaltung ausgeschlossen wurden.
- Beginnen Sie in Vim/Neovim mit der Eingabe in der Datei. Wenn GitHub Copilot während der Eingabe keine Inlinevorschläge mehr bereitstellt, wird die Datei ausgeschlossen.