11 Confidentialité et garde-fous
Ownership et limites des outputs Copilot
11.8 Ownership des outputs Copilot 📜
Définition
L’ownership des outputs concerne la question :
Qui possède le code généré par Copilot ?
Dans la pratique, l’examen veut surtout vérifier que tu comprends :
- une suggestion Copilot doit être revue ;
- l’utilisateur ou l’organisation reste responsable de l’usage du code ;
- il faut respecter les policies internes ;
- il faut faire attention aux licences et similarités avec du code public ;
- il ne faut pas supposer que tout output est automatiquement sans risque.
Exemple
Copilot génère une fonction utilitaire.
Tu l’acceptes dans une PR.
Qui est responsable de vérifier que :
- le code fonctionne
- le code est sécurisé
- le code respecte les licences
- le code respecte les standards projet
- le code ne contient pas de données sensibles
Réponse :
Le développeur et l’organisation qui l’intègrent.
Ce que GitHub dit
Cette section rapporte le vocabulaire de GitHub ; ce n’est pas un avis juridique.
- Dans les conditions spécifiques de GitHub Copilot, GitHub indique ne pas être propriétaire des suggestions (« GitHub does not own Suggestions. You retain ownership of Your Code. »).
- Les mêmes conditions précisent que tu restes responsable de ton code, y compris des suggestions que tu y intègres, et que l’usage d’une suggestion reste ta décision.
- La documentation d’usage responsable de GitHub rappelle que les utilisateurs doivent relire et valider les suggestions, qui peuvent être inexactes, vulnérables ou correspondre à du code public.
Ce que ces textes ne disent pas : ils ne garantissent ni l’absence de problème de licence, ni la conformité de ton code à tes obligations légales.
Mauvais réflexe ❌
Copilot l’a généré, donc GitHub est responsable.Bon réflexe ✅
Copilot a proposé.
Je dois vérifier avant d’intégrer.Cas licence
Si Copilot génère une suggestion qui ressemble à du code public, il faut être prudent.
GitHub fournit une fonctionnalité permettant de trouver du code public qui correspond aux suggestions Copilot, afin de consulter les références associées (code referencing, voir 11.10).
À retenir
Output Copilot ≠ validation juridique automatique. Output Copilot ≠ code automatiquement sûr. Output Copilot ≠ code automatiquement adapté à ton entreprise.
11.9 Limites des outputs générés ⚠️
Définition
Un output Copilot est une réponse générée par l’IA :
- code ;
- test ;
- explication ;
- résumé ;
- documentation ;
- commande ;
- configuration ;
- commentaire de review.
Ces outputs ont des limites.
Limites fréquentes
Copilot peut générer :
- code incorrect
- code vulnérable
- API inexistante
- librairie obsolète
- tests incomplets
- assertions faibles
- documentation imprécise
- commande dangereuse
- configuration trop permissive
- réponse trop confiante mais fausse
Exemple sécurité
Code volontairement non sécurisé (proposé par Copilot) :
query = f"SELECT * FROM users WHERE email = '{email}'"Problème :
SQL injection.
Exemple cloud
Code volontairement trop permissif (policy IAM proposée par Copilot) :
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}Problème :
Permissions trop larges.
Exemple test faible
Code volontairement faible (test proposé par Copilot) :
it("creates a user", async () => {
const response = await request(app).post("/users").send(validUser);
expect(response).toBeDefined();
});Problème :
Le test ne vérifie pas vraiment le comportement.
Bonne pratique
Pour chaque output :
- Est-ce correct ?
- Est-ce sécurisé ?
- Est-ce maintenable ?
- Est-ce testé ?
- Est-ce conforme aux standards ?
- Est-ce compatible avec l’architecture ?
- Est-ce juridiquement acceptable ?
- Est-ce que je comprends ce code ?
À retenir
Copilot génère des suggestions. Les suggestions doivent être vérifiées.
À retenir pour le GH-300
- GitHub indique ne pas posséder les suggestions et te laisse la responsabilité de ton code : un output se relit, se teste et se valide.
- Aucune source ne garantit l’absence de problème de licence ou la conformité légale : ce chapitre rapporte un vocabulaire, pas un avis juridique.
- Un output peut être faux, vulnérable ou trop permissif : compiler et passer des tests existants ne suffit pas.
Questions de la leçon
Chargement de la question…
Pour finir
À retenir
- GitHub indique ne pas posséder les suggestions et te laisse la responsabilité de ton code : un output se relit, se teste et se valide.
- Aucune source ne garantit l’absence de problème de licence ou la conformité légale : ce chapitre rapporte un vocabulaire, pas un avis juridique.
- Un output peut être faux, vulnérable ou trop permissif : compiler et passer des tests existants ne suffit pas.
Objectif GH-300
- Ownership et limites des outputs (Explain ownership and limitations of GitHub Copilot outputs)
Achèvement
Il reste à faire : .