WERBEPLATZ VERFÜGBAR · PARTNERSCHAFTEN WILLKOMMEN

Konfiguration von Sourcegraph Cody Kontextfiltern zum Ausschluss sensibler Repositories aus dem KI-Kontext

365Finds Editorial
11.430 Wiki-Artikel erfasst

365 Wiki mit deiner KI nutzen

Kopiere den Prompt unten, füge ihn in deine gewohnte KI ein und stelle direkt deine Frage.

Vollständigen Skill herunterladen

Probiere es zuerst mit dem Prompt aus. Wenn du 365 Wiki häufig nutzt, installiere den vollständigen 365Wiki Skill, damit du ihn nicht jedes Mal einfügen musst. Ohne bevorzugte KI funktionieren auch die Webversionen von Gemini oder Microsoft Copilot.

Bei der unternehmensweiten Einführung des KI-gestützten Programmierassistenten Sourcegraph Cody stehen Engineering-Leiter sowie Sicherheits- und Compliance-Verantwortliche vor einer zentralen Governance-Frage: Wie lässt sich verlässlich verhindern, dass geschützte Algorithmen, Geschäftsgeheimnisse oder regulatorisch streng überwachte Repositories (etwa im Rahmen von PCI-DSS, HIPAA oder ITAR) als Kontext verpackt und an externe Large Language Models (LLMs) übertragen werden?

Sourcegraph Cody bietet hierfür einen zentralen, serverseitig erzwungenen Schutzmechanismus: die Cody Kontextfilter (cody.contextFilters). Dieses Feature wird direkt in der Sourcegraph Site-Konfiguration verwaltet und ermöglicht Administratoren die Definition präziser Einschluss- und Ausschlussregeln auf Basis von RE2-Regulären Ausdrücken. Dadurch wird auf Repository-Ebene festgelegt, auf welchen Code Cody für Autovervollständigungen, Chat-Antworten und Inline-Edits zugreifen darf.

Dieser Leitfaden führt Schritt für Schritt durch die Konfiguration von cody.contextFilters, erläutert die Auswertungslogik sowie die RE2-Syntax und zeigt Best Practices für ein mehrschichtiges Sicherheitskonzept im Unternehmen auf.


Voraussetzungen und Client-Kompatibilität

Bevor Kontextfilter konfiguriert werden, müssen Infrastruktur und Entwickler-Clients folgende Voraussetzungen erfüllen:

Client-Kompatibilitätsmatrix und Richtliniendurchsetzung

Um zu verhindern, dass Entwickler durch veraltete IDE-Plugins Unternehmensrichtlinien umgehen, erzwingt Sourcegraph serverseitig die Einhaltung der Filtervorgaben:

ClientPlugin-VersionVerhalten unter Sourcegraph v5.4.0Verhalten unter Sourcegraph v5.4.12303+
VS Code< 1.16.xCody nicht kompatibelRichtlinie wird durchgesetzt; Update-Aufforderung
VS Code1.18.0 bis < 1.20.0Cody nicht kompatibelRichtlinie wird durchgesetzt; Update-Aufforderung
VS Code>= 1.20.0Richtlinie vollständig aktivRichtlinie vollständig aktiv
JetBrains<= 5.5.9Cody nicht kompatibelRichtlinie wird durchgesetzt; Update-Aufforderung
JetBrains5.5.10 bis < 6.0.0Cody nicht kompatibelRichtlinie wird durchgesetzt; Update-Aufforderung
JetBrains>= 6.0.0Richtlinie vollständig aktivRichtlinie vollständig aktiv

Auf modernen Sourcegraph-Instanzen wird älteren Clients, die Kontextfilter nicht auswerten können, der Kontextzugriff konsequent verwehrt, wodurch Sicherheitslücken zuverlässig vermieden werden.


Konfigurationsschema und RE2-Syntax

Kontextfilter werden in der JSON-Struktur der Sourcegraph Site-Konfiguration unter der Haupteigenschaft cody.contextFilters hinterlegt. Das Schema akzeptiert zwei optionale Arrays: include (Positivliste) und exclude (Sperrliste).

{
  "cody.contextFilters": {
    "include": [
      {
        "repoNamePattern": "^github\\.com\\/example-corp\\/.*"
      }
    ],
    "exclude": [
      {
        "repoNamePattern": ".*-sensitive$"
      },
      {
        "repoNamePattern": "^github\\.com\\/example-corp\\/core-payments.*"
      }
    ]
  }
}

Wesentliche Schemaregeln:


Auswertungslogik und Priorisierung

Die Arbeitsweise von Cody richtet sich nach der Kombination von Einschluss- und Ausschlussregeln:

1. Nicht definiert (Standardverhalten)

Wird cody.contextFilters weggelassen, hat Cody uneingeschränkten Zugriff auf den Kontext aller Repositories, für die der jeweilige Benutzer in Sourcegraph Leserechte besitzt.

2. Nur include-Regeln definiert (Strikte Whitelist)

Cody darf ausschließlich Repositories als Kontext heranziehen, deren Name auf mindestens ein Muster im include-Array zutrifft. Alle anderen Repositories sind standardmäßig gesperrt.

{
  "cody.contextFilters": {
    "include": [
      {
        "repoNamePattern": "^github\\.com\\/example-corp\\/frontend-.*"
      },
      {
        "repoNamePattern": "^github\\.com\\/example-corp\\/public-docs$"
      }
    ]
  }
}

3. Nur exclude-Regeln definiert (Blacklist)

Cody darf auf den Kontext jedes Repositories zugreifen, außer auf jene, deren Name mit mindestens einem Muster in exclude übereinstimmt.

{
  "cody.contextFilters": {
    "exclude": [
      {
        "repoNamePattern": "^github\\.com\\/example-corp\\/crypto-vault$"
      },
      {
        "repoNamePattern": ".*payment-processing.*"
      },
      {
        "repoNamePattern": ".*-restricted$"
      }
    ]
  }
}

4. Sowohl include als auch exclude definiert (Kombinierte Filterung)

Sind beide Arrays vorhanden, muss ein Repository zwei Bedingungen gleichzeitig erfüllen:

  1. Der Name muss mindestens einem Muster in include entsprechen.
  2. Der Name darf keinem Muster in exclude entsprechen.

Ausschlussregeln haben stets Vorrang vor Einschlussregeln. Im folgenden Beispiel sind alle Repositories unter example-corp erlaubt, ausgenommen Repositories, die compliance im Namen tragen oder auf -secret enden:

{
  "cody.contextFilters": {
    "include": [
      {
        "repoNamePattern": "^github\\.com\\/example-corp\\/.+"
      }
    ],
    "exclude": [
      {
        "repoNamePattern": ".*compliance.*"
      },
      {
        "repoNamePattern": ".*-secret$"
      }
    ]
  }
}

Schritt-für-Schritt-Anleitung für Administratoren

Gehen Sie wie folgt vor, um Kontextfilter in Ihrer Enterprise-Instanz einzurichten und zu testen:

Schritt 1: Namenskonventionen in Sourcegraph prüfen

Cody prüft die regulären Ausdrücke gegen den vollständigen Repository-Pfad in der Sourcegraph-Datenbank.

Schritt 2: Site-Konfiguration öffnen

  1. Melden Sie sich mit Site-Admin-Rechten in Sourcegraph an.
  2. Klicken Sie oben rechts auf Ihr Profil-Icon und wählen Sie Site Admin.
  3. Klicken Sie im linken Navigationsmenü auf Configuration (unter /site-admin/configuration).

Schritt 3: cody.contextFilters einfügen

Ergänzen Sie das JSON-Objekt um den Schalter und die Filterkonfiguration:

{
  // ... weitere Instanzeinstellungen ...
  "cody-context-filters-enabled": true,
  "cody.contextFilters": {
    "include": [
      {
        "repoNamePattern": "^github\\.com\\/meine-org\\/.*"
      }
    ],
    "exclude": [
      {
        "repoNamePattern": "^github\\.com\\/meine-org\\/finanz-core$"
      },
      {
        "repoNamePattern": ".*proprietary.*"
      },
      {
        "repoNamePattern": ".*sec-tools.*"
      }
    ]
  }
}

Schritt 4: Änderungen speichern und anwenden

Klicken Sie unten auf Save changes. Sourcegraph übernimmt die Einstellungen im laufenden Betrieb, ohne dass ein Neustart der Serverdienste erforderlich ist.

Schritt 5: Funktionsprüfung auf Entwicklerrechnern

Testen Sie die Richtlinienwirksamkeit in einer IDE-Umgebung:

  1. Öffnen Sie in VS Code oder JetBrains ein Projekt aus einem ausgeschlossenen Repository.
  2. Starten Sie einen Inline-Edit oder einen Code-Generierungsbefehl. Die Erweiterung bricht die Ausführung ab und meldet:
    Edit failed to run: file is ignored (due to cody.contextFilters Enterprise configuration setting)
    
  3. Versuchen Sie im Cody Chat, Dateien oder Symbole aus dem gesperrten Repository mittels @-mention einzubinden. Diese tauchen nicht in den Vorschlägen auf und Cody übermittelt keine Code-Auszüge an das Sprachmodell.

Entwickler-Workflows und Funktionseinschränkungen

Ein klares Verständnis über das Verhalten in gesperrten Repositories erleichtert die Kommunikation mit den Entwicklungsteams:


Mehrschichtige Governance: Kontrollmechanismen im Vergleich

Ein wirksamer Schutz vor Quellcode-Abfluss setzt auf Defense-in-Depth. Die folgende Übersicht verdeutlicht das Zusammenspiel der Mechanismen:

SicherheitsstufeKonfigurationsortGeltungsbereich & GranularitätVerwaltung durchDurch Entwickler umgehbar?
Enterprise-KontextfilterSite-Konfiguration (cody.contextFilters)Ganze Repositories via RE2-RegExSite-Administratoren / SecOpsNein (Serverseitig erzwungen)
Repository-Ignore-Regeln.cody/ignore im ProjektstammBestimmte Dateien, Ordner oder DateitypenRepository-Maintainer / Dev-LeadsIn Git versioniert; gilt für alle Mitwirkenden
Lokale IDE-AusschlüsseEditor-Einstellungen (settings.json)Lokale temporäre PfadeEinzelne EntwicklerJa (Gilt nur auf lokaler Workstation)
Sourcegraph-ZugriffsrechteRBAC, OAuth-BerechtigungssynchronisationLesezugriff auf Repository-EbeneZentrales IAM / VerzeichnisdiensteNein (Cody liest nie Code ohne Benutzerberechtigung)
Modell-DatenschutzverträgeCody Gateway Zero-Retention AgreementsVollständige LLM-API-ÜbertragungskanäleCloud-Verträge und DPANein (Keine Speicherung oder Modelltraining)

Durch die zentrale Durchsetzung von cody.contextFilters in Kombination mit .cody/ignore für lokale Geheimnisse und den vertraglichen Garantien von Cody Gateway schaffen Unternehmen einen verlässlichen Schutzraum, um Entwicklerteams produktiv mit generativer KI arbeiten zu lassen, ohne sensible Assets zu gefährden.


Referenzen