Skip to main content

Ausschließen von Inhalten von GitHub Copilot

Sie können verhindern, dass Copilot auf bestimmte Inhalte zugreifen.

Wer kann dieses Feature verwenden?

Repository administrators and organization 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.

Organisationen mit einem Abonnement von GitHub Copilot Business oder GitHub Copilot Enterprise.

Informationen über Inhaltsausschlüsse für Copilot

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

Repositoryadministratoren und Organisationsbesitzer können Inhaltsausschlüsse konfigurieren.

  • Repositoryadministratoren können nur Inhalte aus ihren eigenen Repositorys ausschließen. Das wirkt sich auf alle Copilot-Benutzer 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.

Verfügbarkeit von Inhaltsausschlüssen

ToolUnterstützung zur Code-VervollständigungCopilot Chat Support
Visual Studio
Visual Studio Code
JetBrains-IDEs
Vim/NeovimNicht zutreffend
XcodeNicht zutreffend
Azure Data StudioNicht zutreffend
GitHub-WebseiteNicht zutreffend
GitHub MobileNicht zutreffend

Einschränkungen von Inhaltsausschlüssen

Es ist möglich, dass Copilot semantische Informationen aus einer ausgeschlossenen Datei verwenden kann, wenn die Informationen von IDE direkt bereitgestellt werden. Beispiele für solche Inhalte sind Typinformationen und Hoveroverdefinitionen für Symbole, die im Code verwendet werden, sowie allgemeine Projekteigenschaften wie Buildkonfigurationsinformationen.

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.

  1. Klicke auf der Seitenleiste im Abschnitt „Code und Automatisierung“ auf Copilot.

    Wenn dein Repository Ausschlüsse von der übergeordneten Organisation erbt, wird ein graues Feld mit Details zu diesen Ausschlüssen oben auf der Seite angezeigt. Sie können diese Einstellungen nicht bearbeiten.

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

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/**"

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.

  1. Wählen Sie in der oberen rechten Ecke von GitHub Ihr Profilfoto aus, und klicken Sie dann auf Ihre Organisationen.

  2. Klicke neben der Organisation auf Einstellungen.

  3. Klicken Sie in der linken Randleiste auf Copilot und klicken Sie dann auf Inhaltsausschluss.

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

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/**"

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:
    1. Öffne die Befehlspalette. Zum Beispiel durch Drücken von UMSCHALT+Befehlstaste+P (Mac) / STRG+UMSCHALT+P (Windows/Linux).
    2. Geben Sie Folgendes ein: reload.
    3. 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.

  1. Öffnen Sie eine Datei, die Ihrer Meinung nach von Inhaltsausschlüssen betroffen ist.
  2. 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.
    • 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.
    • Du kannst Inhaltsausschlüsse auch 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.

Weiterführende Themen