ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Naviguer et expliquer de vastes bases de code : Comment les équipes d'ingénierie exploitent Sourcegraph Cody avec un contexte multidépôt

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

Les architectures logicielles des entreprises modernes se limitent rarement à un unique dépôt et ne tiennent plus dans l'espace de travail local de l'IDE d'un seul développeur. À mesure que les équipes grandissent, les systèmes se fragmentent en dizaines, centaines ou milliers de dépôts (repositories) : microservices découplés, bibliothèques internes partagées, SDK multiplateformes, applications front-end et configurations d'infrastructure.

Lorsqu'un ingénieur doit déboguer un incident traversant plusieurs services, évaluer l'impact de la modification d'une API ou accélérer la prise en main d'un nouveau projet, les outils de développement traditionnels et les assistants IA locaux se heurtent à un mur structurel. Un assistant opérant uniquement sur le contexte local ne voit que les rares fichiers ouverts dans l'éditeur. Il ne peut pas déterminer comment un événement déclenché par un microservice est consommé par un autre service situé trois dépôts plus loin.

Sourcegraph Cody élimine cet angle mort en associant des modèles de langage de pointe (LLM) à l'infrastructure centralisée d'intelligence de code et d'indexation multidépôt de Sourcegraph. En ancrant les réponses de l'IA dans l'ensemble du patrimoine logiciel de l'entreprise, les équipes d'ingénierie peuvent retracer les flux d'exécution distribués, éclaircir des dépendances complexes et comprendre du code inconnu en un temps record.


Le défi de l'échelle dans les polydépôts et les grands monodépôts

Dans les environnements d'ingénierie d'envergure, les équipes font face à des contraintes structurelles permanentes :

Pour explorer et expliquer des architectures distribuées de manière fiable, un assistant IA doit s'appuyer sur une couche d'intelligence externe capable d'indexer, d'analyser et de filtrer le code à l'échelle de l'entreprise avant d'assembler les prompts.


La technologie : Comment Cody récupère le contexte multidépôt

Plutôt que d'effectuer une analyse superficielle des fichiers locaux au moment de la question, Cody s'appuie sur une architecture de Génération Augmentée par Récupération (RAG) nativement intégrée à la plateforme Sourcegraph.

1. Indexation centralisée à l'échelle de la plateforme

Sourcegraph s'interface directement avec les forges logicielles de l'organisation (telles que GitHub, GitLab et Bitbucket). La plateforme indexe en continu tous les dépôts autorisés. Qu'il s'agisse d'une instance cloud dédiée (Single-Tenant Cloud) ou d'un déploiement sur site (Self-Hosted), Sourcegraph maintient à jour l'arbre complet du code et des symboles de l'entreprise. Cody peut ainsi explorer des dépôts distants qu'un développeur n'a jamais clonés localement.

2. Moteur de recherche multidimensionnel et Code Graph

Lorsqu'un ingénieur pose une question dans la fenêtre de discussion, Cody transmet la requête à l'API de recherche avancée et au moteur de Code Graph de Sourcegraph, combinant plusieurs techniques d'extraction :

3. Réordonnancement côté serveur et optimisation du prompt

Récupérer des milliers de lignes de code ne sert à rien si le système ne sait pas isoler l'essentiel. Cody exécute sur le serveur des algorithmes de réordonnancement (Re-rankers) exclusifs qui évaluent la pertinence de chaque extrait en fonction du chemin du fichier, de la proximité des symboles et de la question posée.

Seuls les fragments présentant le plus fort signal d'information sont formatés et transmis aux modèles de pointe (comme Claude 3.7 Sonnet, Claude 3.5 Sonnet ou GPT-4o), garantissant des explications rigoureuses tout en respectant l'enveloppe de tokens allouée.


Cas d'usage concrets pour les équipes d'ingénierie

Les équipes de développement mettent à profit les capacités multidépôts de Cody dans leurs flux de travail quotidiens.

┌────────────────────────────────────────────────────────────────────────┐
│                        IDE local du développeur                        │
│           (VS Code / JetBrains / Visual Studio / Cody Web)             │
└───────────────────────────────────┬────────────────────────────────────┘
                                    │ 1. Question multidépôt / @-mentions
                                    ▼
┌────────────────────────────────────────────────────────────────────────┐
│                   Plateforme Sourcegraph Enterprise                    │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │ Index central de code (GitHub / GitLab / Bitbucket / Monorepo) │   │
│   └───────────────────────────────┬────────────────────────────────┘   │
│                                   │ 2. Recherche mots-clés + graphe de code│
│                                   ▼                                    │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │ Réordonnanceur serveur & optimisateur de fenêtre de tokens     │   │
│   └───────────────────────────────┬────────────────────────────────┘   │
│                                   │ 3. Extraits de code à fort signal  │
└───────────────────────────────────┼────────────────────────────────────┘
                                    │
                                    ▼ 4. Prompt étayé
┌────────────────────────────────────────────────────────────────────────┐
│                        LLM avancé (Claude / GPT)                       │
│    5. Explication d'architecture avec liens directs vers le code       │
└────────────────────────────────────────────────────────────────────────┘

1. Traçage des flux d'exécution entre microservices

Dans une architecture distribuée, une requête utilisateur transite par plusieurs services distincts. Via le panneau de discussion de Cody, un développeur peut demander :

« Lorsqu'un paiement est validé dans checkout-frontend, par quel point de terminaison de l'api-gateway transite-t-il vers payment-service ? Et quel dépôt implémente le consommateur d'événements qui met à jour la commande dans order-service ? »

Cody consulte simultanément les quatre dépôts, rassemble les règles de routage, la logique métier et les écouteurs de files d'attente, fournissant une synthèse limpide du flux de bout en bout sans que l'ingénieur n'ait à cloner manuellement chaque projet.

2. Explication des bibliothèques internes et des frameworks partagés

Beaucoup d'entreprises développent leurs propres bibliothèques de sécurité, couches d'accès aux données ou frameworks d'intégration, souvent dépourvus de documentation exhaustive. Un développeur peut interroger Cody sur le fonctionnement interne de ces bibliothèques sans quitter son projet en cours. Cody explique la logique du code source de la bibliothèque partagée et met en évidence des exemples concrets d'utilisation issus d'autres dépôts en production de l'entreprise.

3. Accélération de l'onboarding et découverte de l'architecture

Pour les nouveaux ingénieurs, localiser la répartition physique du code constitue souvent l'étape la plus chronophage. Cody agit comme un tuteur technique disponible en continu :

Cody appuie ses réponses sur les noms de fichiers et les lignes de code précises qu'il a consultés. Les nouveaux développeurs peuvent cliquer sur ces références pour inspecter les sources d'origine et construire rapidement une vision claire du système.

4. Analyse du périmètre d'impact avant refactorisation d'API

Avant de modifier une interface ou de déprécier une fonction partagée, les équipes doivent évaluer l'étendue de l'impact (Blast Radius). Cody permet d'auditer l'ensemble du patrimoine de code :

« Si nous déprécions le point de terminaison v1/validateToken dans identity-service, quels dépôts et quelles applications clientes l'appellent encore ? »

Cody identifie tous les points d'appel en quelques minutes, permettant de coordonner les migrations entre équipes et d'éviter les ruptures de service inattendues.


Contrôle précis : @-Mentions et périmètre de contexte

Bien que Cody puisse interroger l'ensemble des dépôts de l'entreprise, les développeurs disposent d'outils précis pour adapter la portée du contexte à leur besoin immédiat.

Les @-Mentions

Dans l'interface de chat de Cody (accessible sous VS Code, JetBrains, Visual Studio et Cody Web), taper @ permet de définir des sources explicites :

Verrouillage permanent de dépôts clés

Dans les paramètres de chat, les ingénieurs peuvent associer des groupes de dépôts fréquemment consultés ensemble (par exemple, le dépôt front-end et l'API back-end correspondante). Toutes les questions posées durant la session exploiteront en priorité ce sous-ensemble prédéfini.

Transparence et vérification par les Context Chips

À chaque réponse, Cody affiche des étiquettes de contexte (Context Chips) mentionnant les fichiers et dépôts consultés. Les ingénieurs peuvent cliquer sur ces références pour vérifier l'exactitude des informations directement dans le code source, s'assurant ainsi que les recommandations reposent sur des faits tangibles.


Gouvernance d'entreprise, sécurité et filtres de contexte

L'ouverture de l'ensemble du patrimoine de code à un assistant IA exige une gestion rigoureuse des accès. Cody Enterprise applique plusieurs niveaux de contrôle :

Respect des autorisations d'origine (RBAC)

Cody applique rigoureusement les droits d'accès basés sur les rôles (RBAC) configurés dans Sourcegraph et sur les forges logicielles (GitHub, GitLab, etc.). Si un développeur n'a pas accès en lecture à un dépôt confidentiel, Cody n'extraira jamais de code de ce dépôt pour cet utilisateur.

Filtres de contexte (Cody Context Filters)

Les administrateurs peuvent configurer cody.contextFilters via des expressions régulières pour définir les dépôts éligibles ou interdits comme contexte pour les LLM :

{
  "cody.contextFilters": {
    "include": [
      {
        "repoNamePattern": "^github\\.com\\/mon-organisation\\/.*"
      }
    ],
    "exclude": [
      {
        "repoNamePattern": ".*-cles-securite.*"
      },
      {
        "repoNamePattern": ".*-donnees-confidentielles.*"
      }
    ]
  }
}

Les dépôts exclus sont totalement ignorés par Cody, éliminant tout risque de transmission de code sensible vers des fournisseurs de modèles tiers.


Bonnes pratiques pour les équipes d'ingénierie

Pour tirer le meilleur parti du contexte multidépôt dans l'ensemble de l'organisation, il est recommandé d'adopter les habitudes suivantes :

  1. Structurer les questions d'architecture : Mentionner les noms de services envisagés, les types d'échanges ou les formats de données aide le moteur de recherche à cibler plus rapidement les dépôts pertinents.
  2. Combiner Code Search et Cody Chat : Utilisez Sourcegraph Code Search pour repérer de grandes tendances ou versions obsolètes à l'échelle du groupe, puis utilisez Cody Chat pour élaborer les plans de refactorisation et comprendre les ajustements nécessaires.
  3. Harmoniser les prompts récurrents : Définissez des modèles de requêtes partagés pour les revues d'API, l'analyse de dépendances et l'intégration de microservices.
  4. Vérifier systématiquement les extraits cités : Utilisez Cody comme un accélérateur d'exploration, tout en prenant le réflexe de vérifier les fichiers mentionnés dans les Context Chips pour valider les décisions techniques.

En reliant le poste de travail individuel à l'ensemble du patrimoine logiciel de l'entreprise, Sourcegraph Cody transforme la manière dont les équipes d'ingénierie comprennent, maintiennent et font évoluer leurs architectures logicielles complexes.


Références