WERBEPLATZ VERFÜGBAR · PARTNERSCHAFTEN WILLKOMMEN

Wie Engineering-Teams Sourcegraph Cody mit Multi-Repository-Kontext konfigurieren, um Legacy-Code zu erklären und unternehmensweite Codebases zu durchsuchen

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.

In modernen Softwareorganisationen existiert Code selten in einem isolierten Repository. Microservices kommunizieren über verteilte RPC-Schnittstellen, Web-Frontends hängen von versionierten API-Verträgen ab und geschäftskritische Kernprozesse laufen häufig in gewachsenen Legacy-Monolithen, die über Jahre hinweg entstanden sind. Wenn Entwickler versuchen, solche Systeme mit herkömmlichen KI-Coding-Assistenten zu warten oder zu modernisieren, stoßen sie schnell an Grenzen: Die meisten Werkzeuge analysieren lediglich die aktuell geöffnete Datei oder den lokalen Projektordner. Ihnen fehlt jeglicher Einblick in gemeinsam genutzte Bibliotheken, nachgelagerte Services und historische Implementierungen in anderen Repositories.

Sourcegraph Cody überwindet diese Einschränkung, indem es die Kontextbeschaffung von der lokalen IDE-Arbeitsumgebung entkoppelt. Auf Basis der zentralen Code-Intelligence-Plattform von Sourcegraph kann Cody den semantischen Kontext über Hunderte oder Tausende von Repositories hinweg abrufen – egal ob diese auf GitHub, GitLab, Bitbucket oder internen Git-Servern betrieben werden.

Dieser Leitfaden beschreibt, wie Engineering-Teams Sourcegraph Cody mit Multi-Repository-Kontext (Multi-Repository Context) konfigurieren, welche administrative Architektur für Indexierung und Governance erforderlich ist und wie Entwickler diese Funktionalität nutzen, um undokumentierten Legacy-Code zu entschlüsseln und unternehmensweite Codebases präzise zu durchsuchen.


1. Architektur-Grundlagen: Funktionsweise des Multi-Repository-Kontexts

Im Gegensatz zu Assistenten, die lediglich lokale Vektoreinbettungen im Client erstellen, basiert der Multi-Repository-Kontext von Cody auf einer zentralisierten Plattformarchitektur:

┌─────────────────────────────────────────────────────────────┐
│                       Entwickler-IDE                        │
│     (VS Code / JetBrains / Visual Studio / Cody Web)        │
│   - Kontext-Chips: Aktuelle Datei + angepinnte Repos (≤ 10) │
│   - Gezielte @-Erwähnungen (@repo, @dir, @file, @symbol)    │
└──────────────────────────────┬──────────────────────────────┘
                               │ HTTPS / Access Token
                               ▼
┌─────────────────────────────────────────────────────────────┐
│             Sourcegraph Enterprise-Instanz                  │
│                 (Cloud oder Self-Hosted)                    │
│                                                             │
│  ┌─────────────────────────┐   ┌─────────────────────────┐  │
│  │       Suchmaschine      │   │       Code Graph        │  │
│  │   (Zoekt-Trigram-Index) │   │  (Semantischer SCIP)    │  │
│  └─────────────────────────┘   └─────────────────────────┘  │
│  ┌─────────────────────────┐   ┌─────────────────────────┐  │
│  │      Kontextfilter      │   │ Berechtigungs-Sync      │  │
│  │    (Repos ausschließen) │   │   (GitHub/GitLab RBAC)  │  │
│  └─────────────────────────┘   └─────────────────────────┘  │
└──────────────────────────────┬──────────────────────────────┘
                               │ Prompt + präzise Code-Ausschnitte
                               ▼
┌─────────────────────────────────────────────────────────────┐
│                 LLM-Provider (Cody Gateway)                 │
│         (Claude 3.7 / 3.5 Sonnet, GPT-4o usw.)              │
└─────────────────────────────────────────────────────────────┘
  1. Zentrale Repository-Indexierung: Sourcegraph indexiert alle angebundenen Code-Hosts mit Zoekt (einer hochperformanten Trigram-Volltextsuchmaschine) und SCIP-Indexern (Source Code Intelligence Protocol). Hierdurch entsteht ein unternehmensweiter Symbolgraph für Definitionen, Aufrufketten und Vererbungshierarchien.
  2. Rechtebasierte Kontextabfrage: Cody respektiert die auf den Code-Hosts hinterlegten Zugriffsberechtigungen. Stellt ein Entwickler eine Frage, durchsucht Cody ausschließlich Repositories, für die der jeweilige Benutzer-Account Leserechte besitzt. Ein unbefugter Datenabfluss wird so zuverlässig verhindert.
  3. Punktgenaue Kontextinjektion: Statt vollständige Remote-Repositories in das Prompt des Sprachmodells zu laden – was das Token-Fenster überlasten und die Antwortqualität mindern würde –, extrahiert Cody über die Sourcegraph Search API exakt die relevanten Typdefinitionen, Schnittstellenverträge und Funktionsblöcke.

Der Multi-Repository-Kontext ist eine Kernfunktion von Cody Enterprise (über Sourcegraph Cloud oder selbst gehostete Instanzen). Die Free- und Pro-Versionen von Cody sind primär auf einzelne lokale Arbeitsbereiche beschränkt.


2. Infrastruktur und Administrator-Konfiguration

Die Bereitstellung beginnt auf der Sourcegraph-Instanz. Site-Administratoren müssen sicherstellen, dass die Repositories synchronisiert, die semantischen Indizes aktiv und Cody Enterprise freigeschaltet sind.

Schritt 1: Anbindung von Code-Hosts und Synchronisation

Navigieren Sie in der Verwaltungskonsole zu Site Admin > Code Hosts (/site-admin/external-services) und richten Sie die Verbindung zu Ihren Versionskontrollsystemen (z. B. GitHub Enterprise, GitLab Self-Managed oder Bitbucket Data Center) ein.

Legen Sie Filterregeln fest, um sowohl moderne Microservices als auch gewachsene Monolithen und Shared Libraries einzuschließen:

{
  "url": "https://github.com",
  "token": "ghp_yourEnterpriseSyncToken",
  "orgs": ["engineering-core", "legacy-platforms", "shared-libraries"]
}

Überprüfen Sie, ob Klonprozesse im Hintergrund und die periodischen Abgleiche ohne Authentifizierungsfehler durchlaufen.

Schritt 2: Code Graph und Auto-Indexing konfigurieren

Die Zoekt-Volltextsuche ist unmittelbar nach dem Klonen einsatzbereit. Um jedoch verschachtelte Abhängigkeiten in Legacy-Systemen präzise analysieren zu können, ist eine exakte semantische Code-Navigation erforderlich:

  1. Aktivieren Sie unter Site Admin > Code Navigation die automatische Indexierung (Auto-indexing).
  2. Für die Kernsprachen (Go, TypeScript/JavaScript, Java, Python, C++) sollten SCIP-Indizes über CI/CD-Pipelines (z. B. GitHub Actions oder GitLab CI) mit den passenden Indexern (scip-typescript, scip-java, scip-python usw.) erzeugt und an die Sourcegraph-Instanz übertragen werden.
  3. Durch SCIP-Daten kann Cody Aufrufer und konkrete Implementierungen über Repository-Grenzen hinweg fehlerfrei zuordnen, anstatt auf Vermutungen angewiesen zu sein.

Schritt 3: Cody in der Site-Konfiguration aktivieren

Öffnen Sie Site Admin > Site Configuration (/site-admin/configuration) und ergänzen Sie folgende Parameter:

{
  "cody.enabled": true,
  "completions": {
    "provider": "sourcegraph"
  }
}

Konfigurieren Sie ein Modell, das für umfangreiche Kontexte ausgelegt ist (wie Anthropic Claude 3.5 Sonnet, Claude 3.7 Sonnet oder Azure OpenAI GPT-4o über Cody Gateway). Stellen Sie sicher, dass keine einschränkenden Flags wie cody.restrictUsersFeatureFlag den Zugriff blockieren.

Schritt 4: Kontextfilter (Context Filters) für sensible Repositories einrichten

In vielen Unternehmen existieren Repositories mit Sicherheitszertifikaten, PCI-relevanten Bezahlschnittstellen oder Geschäftsgeheimnissen, die von KI-Abfragen ausgeschlossen bleiben müssen.

Über Context Filters (cody.contextFilters) können Administratoren solche Repositories global ausschließen:

{
  "cody.contextFilters": {
    "exclude": [
      { "repo": "github.com/company/pci-vault-service" },
      { "repo": "github.com/company/compliance-secrets-.*" }
    ]
  }
}

3. Entwickler-Client-Konfiguration in VS Code, JetBrains und Web

Nachdem die Server-Infrastruktur eingerichtet ist, konfigurieren Entwickler ihre lokalen Entwicklungsumgebungen.

Schritt 1: IDE-Erweiterung verbinden

  1. Installieren Sie die offizielle Cody-Erweiterung in VS Code, JetBrains (IntelliJ IDEA, PyCharm, GoLand, WebStorm) oder Visual Studio.
  2. Öffnen Sie die Seitenleiste und wählen Sie Sign In with Sourcegraph Enterprise.
  3. Geben Sie die URL der Unternehmensinstanz ein:
    https://sourcegraph.internal.company.com
    
  4. Führen Sie den Browser-basierten SSO-Login durch oder hinterlegen Sie ein persönliches Access Token aus Ihren Sourcegraph-Benutzereinstellungen.

Schritt 2: Lokale Codebase-Zuordnung prüfen (cody.codebase)

Standardmäßig erkennt Cody das Git-Remote-Origin des lokalen Verzeichnisses und ordnet es dem entsprechenden Repository-Slug auf der Sourcegraph-Instanz zu.

Weicht der lokale Ordnername ab oder wird ein komplexes Submodul-Setup verwendet, deklarieren Sie den Bezeichner explizit in den Workspace-Einstellungen (.vscode/settings.json):

{
  "cody.codebase": "github.com/organization/core-payment-service"
}

Schritt 3: Multi-Repo-Kontext im Chat-Fenster verwalten

Beim Öffnen des Cody-Chatfensters werden oberhalb des Eingabefelds Standard-Kontext-Chips angezeigt:

Um weitere Repositories aus der Organisation hinzuzufügen:

  1. Kontext-Verwaltungsleiste (Context Chips): Klicken Sie auf die Leiste über dem Chat, um bis zu 10 Remote-Repositories zu suchen und an die aktive Sitzung anzupinnen. Anschließend durchsucht jede gestellte Frage automatisch alle diese Codebases.
  2. Gezielte @-Erwähnungen:
    • @repo/organization/legacy-billing-monolith: Bindet den gesamten Legacy-Abrechnungsmonolithen ein.
    • @dir/organization/auth-service/pkg/middleware: Grenzt den Kontext auf ein spezifisches Modul oder Verzeichnis ein.
    • @file/organization/proto-contracts/v2/payment.proto: Liest eine Schnittstellendefinition ein, ohne das Repository lokal klonen zu müssen.
    • @symbol: Referenziert eine spezifische Klasse, Struktur oder ein Interface aus dem Organisationsindex.
  3. Cody Web-Interface: Für Entwickler, die architektonische Recherchen ohne lokale IDE durchführen möchten, steht die Sourcegraph-Weboberfläche zur Verfügung: Über das Cody-Symbol in der Navigationsleiste können Abfragen direkt an alle indexierten Repositories gerichtet werden.

4. Praxisszenarien: Legacy-Code über Repository-Grenzen hinweg entschlüsseln

Legacy-Systeme zeichnen sich häufig dadurch aus, dass ursprüngliche Autoren das Unternehmen verlassen haben, Dokumentationen veraltet sind und Geschäftsregeln unübersichtlich über Services verteilt wurden. Cody hilft Teams in folgenden Kernszenarien:

Szenario A: Verteilte Request-Ketten lückenlos nachvollziehen

Untersuchung eines Fehlers, bei dem Buchungsbenachrichtigungen aus einem modernen Checkout-Service im zehn Jahre alten Abrechnungsmonolithen verloren gehen:

Mit geöffnetem checkout-service im Editor lautet die Frage an Cody:

Entwickler-Prompt: @checkout-service @legacy-billing-monolith @event-bus-contracts "Verfolge, wie das vom Checkout-Service gesendete OrderSubmittedEvent im Legacy-Billing-Monolithen verarbeitet wird. Welche Datenbanktabellen werden aktualisiert und unter welchen Bedingungen wird die Kontenbelastung übersprungen?"

Interne Verarbeitung durch Cody:

  1. Analysiert die Ereignisdefinition in @event-bus-contracts.
  2. Sucht in @legacy-billing-monolith nach Message-Handlern und Queue-Listenern, die das Event abonnieren.
  3. Durchleuchtet die Transaktionslogik und identifiziert ausführende SQL-Anweisungen und Stored Procedures.
  4. Deckt versteckte Geschäftsregeln auf (wie veraltete Hardcoded-Prüfungen auf Partner-IDs), die das Ausbleiben der Buchung erklären.

Szenario B: Undokumentierte Geschäftsregeln und Algorithmen aufdecken

Entschlüsselung komplexer Tarif- oder Rabattberechnungen ohne vorhandene Dokumentation:

Entwickler-Prompt: @core-monolith/src/main/resources/rules/pricing_engine_v1.rb @pricing-integration-tests "Erkläre die Zustandsübergänge und Randfälle in calculate_tiered_rebate. Gleiche dies mit den historischen Integrationstests in @pricing-integration-tests ab und erkläre, warum bei quartalsübergreifenden Staffelwerten negative Korrekturen angewendet werden."

Cody vergleicht den produktiven Quellcode mit den Assertions der Testsuite und fasst die verschachtelte Bedingungslogik in einer lesbaren Spezifikation zusammen.

Szenario C: Auswirkungsanalyse vor Deprecations und Migrationen

Vor dem Abschalten eines veralteten RPC-Endpunkts:

Entwickler-Prompt: @user-profile-service @notification-service @reporting-worker "Wir planen, GetUserPreferencesV1 in @user-profile-service abzuschalten. Welche der angepinnten Downstream-Services rufen diesen Endpunkt auf, welche Felder werden tatsächlich verarbeitet und welche Codeänderungen sind für den Wechsel auf GetUserPreferencesV2 notwendig?"

Cody durchsucht alle aufrufenden Clients, listet die tatsächlich genutzten Felder auf und liefert konkrete Migrationsbeispiele für jeden abhängigen Service.


5. Durchsuchen unternehmensweiter Codebases mit natürlicher Sprache

Klassische Codesuche erfordert das Wissen über exakte Funktionsnamen oder reguläre Ausdrücke. Cody kombiniert natürliches Sprachverständnis mit der Suchmaschine von Sourcegraph, um explorative Fragen schnell zu beantworten.

Aufspüren etablierter Implementierungsstandards

In wachsenden Entwicklungsorganisationen werden Basisfunktionen wie Redis-basiertes Rate-Limiting, HTTP-Retries oder Token-Validierungen häufig mehrfach neu erfunden:

Entwickler-Prompt: "Wie implementieren unsere Go-Microservices verteiltes Rate-Limiting mit Redis? Zeige mir das am weitesten verbreitete interne Standardpaket oder die empfohlene Referenzimplementierung."

Cody durchsucht die Repositories der Organisation, wertet Abhängigkeiten aus, identifiziert die maßgebliche interne Bibliothek (z. B. pkg/ratelimit) und zeigt konforme Codebeispiele.

Prüfung von Sicherheitsrichtlinien und veralteten Verfahren

Bei Architektur-Reviews und Sicherheitsüberprüfungen:

Entwickler-Prompt: @payment-service @auth-service @mobile-api-gateway "Wie ist die JWT-Validierung in diesen Repositories umgesetzt? Gibt es Services, die die Signaturprüfung überspringen oder veraltete Algorithmen ohne Schlüsselrotation (wie unvalidiertes RS256) akzeptieren?"

Cody prüft die Middleware-Konfigurationen der Repositories und stellt Sicherheitsabweichungen übersichtlich gegenüber.


6. Best Practices, Risiken und operative Richtlinien

Um eine hohe Antwortqualität und geringe Latenz bei Multi-Repo-Abfragen sicherzustellen, sollten Teams folgende Grundsätze beachten:

Best PracticeTechnische Begründung
Auf 2 bis 5 relevante Repositories pro Chat beschränkenCody unterstützt bis zu 10 Repositories; werden jedoch zu viele unbeteiligte Projekte angepinnt, steigt das Rauschen im RAG-Kontext und die Modellaufmerksamkeit sinkt.
Vertragsdateien mit @file oder @dir direkt ansprechenDas gezielte Referenzieren von .proto-, OpenAPI- oder GraphQL-Dateien stellt sicher, dass die KI auf Basis der formalen Schnittstellenverträge antwortet.
SCIP-Indizes kontinuierlich aktualisierenWährend Volltextsuchen auf Zeichenketten basieren, garantiert der SCIP-Semantikgraph exakte Symbolsprünge über Repository-Grenzen hinweg. Binden Sie SCIP in CI-Pipelines ein.
Kontext-Chips vor dem Absenden prüfenEntfernen Sie temporäre oder irrelevante lokale Dateien aus der Kontextleiste, um das Sprachmodell nicht zu verwirren.
Cody mit Sourcegraph Batch Changes kombinierenNutzen Sie Cody Chat, um Legacy-Strukturen zu verstehen und Migrationspläne zu entwerfen. Führen Sie die resultierenden Codeänderungen über Dutzende Repositories hinweg anschließend automatisiert mit Batch Changes aus.

Fazit

Die Konfiguration von Sourcegraph Cody mit Multi-Repository-Kontext erweitert KI-Assistenten von einem lokalen Editor-Autovervollständiger zu einer unternehmensweiten Wissensplattform. Durch das Zusammenspiel von zentraler Code-Synchronisation, präzisen semantischen Graphen und strikten Zugriffskontrollen können Entwicklerteams gewachsene Legacy-Systeme sicher durchdringen, Abhängigkeiten aufdecken und anstehende Modernisierungen mit fundierter Gewissheit umsetzen.


Referenzen