ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Comment configurer les filtres de contexte Sourcegraph Cody pour exclure les dépôts sensibles du contexte IA

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.

Lors du déploiement de l'assistant de codage assisté par intelligence artificielle Sourcegraph Cody en entreprise, les responsables de l'ingénierie ainsi que les équipes chargées de la sécurité et de la conformité font face à un enjeu de gouvernance majeur : comment s'assurer que les algorithmes propriétaires, les secrets commerciaux ou les bases de code soumises à des réglementations strictes (telles que PCI-DSS, HIPAA ou ITAR) ne soient jamais inclus comme contexte et envoyés à des modèles de langage (LLM) tiers ?

Sourcegraph Cody propose un mécanisme d'administration centralisé et appliqué côté serveur : les filtres de contexte (cody.contextFilters). Définis directement dans la configuration du site (Site Configuration) de Sourcegraph, ces filtres permettent aux administrateurs d'établir des règles précises d'inclusion et d'exclusion basées sur des expressions régulières RE2. Ils contrôlent ainsi strictement les dépôts auxquels Cody peut accéder pour générer des suggestions d'autocomplétion, des réponses de chat et des commandes.

Ce guide détaille la procédure de configuration de cody.contextFilters, explicite la logique d'évaluation et la syntaxe d'expressions régulières, et présente les bonnes pratiques pour instaurer une gouvernance de sécurité en profondeur.


Prérequis et compatibilité des clients

Avant de configurer les filtres de contexte, assurez-vous que votre infrastructure et vos postes de travail respectent les exigences suivantes :

Matrice de compatibilité et application des règles

Afin d'empêcher les développeurs de contourner les exigences de conformité en conservant d'anciennes versions d'extensions IDE, Sourcegraph applique une politique stricte de rétrocompatibilité :

ClientVersion de l'extensionComportement sous Sourcegraph v5.4.0Comportement sous Sourcegraph v5.4.12303+
VS Code< 1.16.xCody non compatibleRespecte la politique ; invite à mettre à jour
VS Code1.18.0 à < 1.20.0Cody non compatibleRespecte la politique ; invite à mettre à jour
VS Code>= 1.20.0Respecte pleinement la politiqueRespecte pleinement la politique
JetBrains<= 5.5.9Cody non compatibleRespecte la politique ; invite à mettre à jour
JetBrains5.5.10 à < 6.0.0Cody non compatibleRespecte la politique ; invite à mettre à jour
JetBrains>= 6.0.0Respecte pleinement la politiqueRespecte pleinement la politique

Sur les instances Sourcegraph récentes, les clients obsolètes incapables d'interpréter les filtres de contexte se voient bloquer l'accès au contexte et sont sommés de mettre à niveau leurs extensions, éliminant ainsi toute faille de sécurité.


Schéma de configuration et syntaxe RE2

Les filtres de contexte s'intègrent dans le JSON de configuration du site Sourcegraph sous la clé principale cody.contextFilters. Le schéma accepte deux tableaux facultatifs : include (liste d'autorisation) et exclude (liste d'exclusion).

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

Règles clés du schéma :


Logique d'évaluation et priorité des règles

Le comportement de Cody varie selon l'agencement des tableaux include et exclude :

1. Aucun filtre défini (comportement par défaut)

Si cody.contextFilters est omis, Cody applique son modèle de droits standard : tout dépôt auquel l'utilisateur a accès en lecture dans Sourcegraph peut servir de contexte, sans restriction supplémentaire.

2. Seules les règles include sont définies (Liste blanche stricte)

Cody est strictement limité aux dépôts dont le nom correspond à au moins un motif présent dans include. Tous les autres dépôts sont exclus d'office.

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

3. Seules les règles exclude sont définies (Liste d'exclusion)

Cody peut extraire du contexte de n'importe quel dépôt, à l'exception de ceux correspondant à au moins un motif de la liste exclude.

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

4. Les règles include et exclude sont toutes deux définies (Filtrage combiné)

Lorsque les deux blocs coexistent, un dépôt doit satisfaire deux critères simultanément :

  1. Correspondre à au moins un motif de la liste include.
  2. Ne correspondre à aucun motif de la liste exclude.

Les règles d'exclusion l'emportent systématiquement sur les règles d'inclusion. Dans l'exemple ci-dessous, tous les dépôts sous example-corp sont acceptés, sauf ceux dont le nom contient compliance ou se termine par -secret :

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

Guide de configuration étape par étape pour les administrateurs

Voici le processus recommandé pour déployer et vérifier les filtres de contexte sur une instance Sourcegraph :

Étape 1 : Auditer les conventions de nommage des dépôts

Cody vérifie les expressions régulières par rapport au chemin complet indexé dans Sourcegraph.

Étape 2 : Accéder à l'éditeur de configuration du site

  1. Connectez-vous à Sourcegraph avec un compte administrateur (Site Admin).
  2. Cliquez sur votre avatar en haut à droite et sélectionnez Site Admin.
  3. Dans le menu de navigation latéral gauche, cliquez sur Configuration (chemin /site-admin/configuration).

Étape 3 : Insérer le bloc cody.contextFilters

Ajoutez les directives appropriées dans l'objet JSON racine :

{
  // ... autres paramètres du site ...
  "cody-context-filters-enabled": true,
  "cody.contextFilters": {
    "include": [
      {
        "repoNamePattern": "^github\\.com\\/mon-organisation\\/.*"
      }
    ],
    "exclude": [
      {
        "repoNamePattern": "^github\\.com\\/mon-organisation\\/noyau-financier$"
      },
      {
        "repoNamePattern": ".*proprietary.*"
      },
      {
        "repoNamePattern": ".*sec-tools.*"
      }
    ]
  }
}

Étape 4 : Enregistrer et appliquer les modifications

Cliquez sur Save changes en bas de page. Sourcegraph applique la mise à jour à chaud, sans interruption de service ni redémarrage de conteneurs.

Étape 5 : Valider le blocage côté développeur

Assurez-vous que les restrictions sont effectives directement dans les environnements de développement :

  1. Ouvrez un projet appartenant à un dépôt exclu dans VS Code ou JetBrains.
  2. Tentez d'exécuter une modification inline (Edit) ou de générer du code. L'extension interrompt la requête et affiche l'alerte suivante :
    Edit failed to run: file is ignored (due to cody.contextFilters Enterprise configuration setting)
    
  3. Dans le panneau Cody Chat, tentez de mentionner des fichiers ou des symboles du dépôt exclu via @-mention. Constatez qu'ils n'apparaissent pas dans les suggestions et que Cody n'extrait aucun extrait de code pour alimenter le prompt.

Impact sur l'expérience développeur

Connaître les répercussions pratiques sur le travail des développeurs permet d'accompagner l'adoption sereinement :


Gouvernance en couches : Comparaison des mécanismes de contrôle

Une stratégie robuste de protection du code repose sur une défense en profondeur associant plusieurs mécanismes complémentaires :

Couche de gouvernanceEmplacementPortée et granularitéAdministré parContournable par le développeur ?
Filtres de contexte d'entrepriseConfiguration du site (cody.contextFilters)Dépôts complets via expressions régulières RE2Administrateurs de site / SécuritéNon (Appliqué de force par le serveur)
Règles d'exclusion de dépôtFichier .cody/ignore à la racine du dépôtFichiers spécifiques, dossiers ou extensionsResponsables de dépôt / DevsVersionné dans Git ; s'applique à tous les contributeurs
Exclusions locales de l'IDEParamètres de l'éditeur (settings.json)Chemins locaux ou fichiers temporairesDéveloppeur individuelOui (Propre au poste de travail local)
Droits d'accès au code SourcegraphRBAC, synchronisation OAuthDroits de lecture au niveau du dépôtÉquipes IAM d'entrepriseNon (Cody n'accède jamais à ce que l'utilisateur ne peut lire)
Engagements contractuels du LLMAccords Zero-Retention de Cody GatewayFlux réseau complet des requêtes LLMContrats fournisseurs cloudNon (Données non conservées et non utilisées pour l'entraînement)

En combinant cody.contextFilters au niveau central, le fichier .cody/ignore pour les fichiers sensibles locaux et les garanties d'absence de rétention de Cody Gateway, les entreprises disposent d'un cadre étanche pour démultiplier l'efficacité de leurs ingénieurs tout en protégeant rigoureusement leur propriété intellectuelle.


Références