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
| Point | Exclusions | Public code |
|---|---|---|
| Question posée | Quel contenu de mon code Copilot peut-il lire ? | Ce que Copilot génère ressemble-t-il à du code public ? |
| Agit sur | Le contexte (fichiers exclus) | La suggestion produite |
| Configuré par | Repository administrators, organization owners, enterprise owners | L’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 :
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é :
query = f"SELECT * FROM users WHERE email = '{email}'"Copilot peut signaler :
This query may be vulnerable to SQL injection.
Use parameterized queries.Exemple authorization
Code volontairement non sécurisé :
app.get("/admin/users", async (req, res) => {
const users = await userService.getAllUsers();
res.json(users);
});Warning possible :
This route appears to expose admin data without checking user role.Exemple CLI
Commande générée :
rm -rf ./logsWarning 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 ?
- Ne pas l’ignorer automatiquement.
- Comprendre le risque.
- Vérifier le code.
- Corriger si nécessaire.
- Ajouter un test si possible.
- 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.
Pratique : Code public ou exclusion de contenu ?
Une content exclusion décide de ce que Copilot peut lire comme contexte. Le réglage Suggestions matching public code et le code referencing concernent ce que Copilot génère. Pour chaque besoin, choisis le contrôle qui y répond.
Chargement de la question…
Questions de la leçon
Chargement de la question…
Pour finir
À retenir
- 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.
Objectifs GH-300
- Filtre du code public (Configure suggestions matching public code and code references)
- Ownership et limites des outputs (Explain ownership and limitations of GitHub Copilot outputs)
Achèvement
Il reste à faire : , .