11 Confidentialité et garde-fous

Code public et security warnings

11.10 Suggestions matching public code et code referencing 🔎

Définition

Le réglage Suggestions matching public code permet d’autoriser (Allow) ou de bloquer (Block) les suggestions Copilot qui correspondent à du code public. C’est le nom actuel utilisé par GitHub et par le guide d’étude GH-300. Tu rencontreras encore l’ancien nom « duplication detection » dans du matériel plus ancien : c’est la même idée.

GitHub indique que les paramètres personnels Copilot permettent d’autoriser ou bloquer les suggestions qui correspondent à du code public. Quand le blocage est activé, dans la plupart des produits Copilot, GitHub compare la suggestion et environ 150 caractères de contexte avec du code public sur GitHub ; en cas de correspondance ou quasi-correspondance, la suggestion n’est pas affichée.

Si tu reçois ton seat Copilot via une organisation, tu ne peux pas régler ce paramètre dans ton compte personnel : il est hérité de l’organisation ou de l’enterprise.

Ne pas confondre avec les content exclusions

PointExclusionsPublic code
Question poséeQuel contenu de mon code Copilot peut-il lire ?Ce que Copilot génère ressemble-t-il à du code public ?
Agit surLe contexte (fichiers exclus)La suggestion produite
Configuré parRepository administrators, organization owners, enterprise ownersL’utilisateur, ou l’organisation / l’enterprise qui impose le réglage

Les deux sont complémentaires. L’un ne remplace pas l’autre.

Exemple

Copilot propose un bloc de code qui ressemble fortement à une implémentation publique sous licence.

Selon le réglage :

  • Block : la suggestion qui correspond n’est pas affichée ;
  • Allow : la suggestion peut être affichée, et, quand la fonctionnalité le permet, GitHub fournit des informations sur le code public qui correspond (code referencing : adresses des fichiers concernés et nom de la licence).

Code references

Le code referencing compare la suggestion et environ 150 caractères de code environnant à un index des repositories publics. Une correspondance est écartée ou proposée avec une référence de code. Pour une suggestion inline, quand tu acceptes une suggestion qui correspond à du code public, GitHub enregistre les informations sur le code correspondant (adresses des fichiers, licence détectée) ; seules les suggestions acceptées et non modifiées sont vérifiées ainsi. Dans une réponse de Copilot Chat, la réponse contient un lien vers les informations sur la correspondance. Ces références aident à examiner la source et le contexte : elles ne valent pas validation juridique.

Pourquoi c’est important ?

Parce qu’une entreprise peut avoir des règles strictes sur :

  • licences open source
  • attribution
  • code tiers
  • propriété intellectuelle
  • conformité juridique

Exemple examen

Question :

Une organisation veut réduire le risque d’accepter une suggestion qui correspond à du code public. Quelle fonctionnalité ou setting est pertinent ?

Réponse :

Bloquer les suggestions correspondant à du code public (réglage « Suggestions matching public code »).

Piège d’examen

Ce réglage ne veut pas dire :

Texte
Tous les risques juridiques disparaissent.

Elle aide, mais il faut toujours respecter les règles internes.

11.11 Security warnings 🚨

Définition

Les security warnings sont des alertes ou commentaires signalant un risque sécurité potentiel.

Ils peuvent apparaître dans différents contextes :

  • Copilot Chat ;
  • Copilot Code Review ;
  • suggestions ;
  • PR review ;
  • analyse de code ;
  • commandes CLI ;
  • génération de configuration.

Exemples de security warnings

  • SQL injection possible
  • missing authorization check
  • hardcoded secret
  • unsafe logging
  • XSS risk
  • overly permissive IAM policy
  • command may delete files
  • token exposed in code

Exemple SQL injection

Code volontairement non sécurisé :

pyRisque à vérifier
query = f"SELECT * FROM users WHERE email = '{email}'"

Copilot peut signaler :

Texte
This query may be vulnerable to SQL injection.
Use parameterized queries.

Exemple authorization

Code volontairement non sécurisé :

jsRisque à vérifier
app.get("/admin/users", async (req, res) => {
  const users = await userService.getAllUsers();
  res.json(users);
});

Warning possible :

Texte
This route appears to expose admin data without checking user role.

Exemple CLI

Commande générée :

Bash
rm -rf ./logs

Warning attendu côté humain :

Cette commande supprime des fichiers. Vérifier le chemin, l’impact et prévoir un dry-run.

Que faire avec un security warning ?

  1. Ne pas l’ignorer automatiquement.
  2. Comprendre le risque.
  3. Vérifier le code.
  4. Corriger si nécessaire.
  5. Ajouter un test si possible.
  6. Faire relire si sensible.

À retenir

Un warning Copilot n’est pas une preuve absolue, mais c’est un signal à examiner.

À retenir pour le GH-300

  • Content exclusions : ce que Copilot lit. Suggestions matching public code : ce que Copilot génère. Deux contrôles différents, complémentaires.
  • Block n’affiche pas une suggestion qui correspond à du code public ; Allow l’affiche avec des informations de référence quand la fonctionnalité le permet.
  • Avec un seat d’organisation, le réglage est hérité de l’organisation ou de l’enterprise.
  • Un warning Copilot est un signal à examiner : ni à ignorer d’emblée, ni à suivre sans comprendre.

D6 · Confidentialité, exclusions de contenu et garde-fous · 10–15 %