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 ❌

Texte
Copilot l’a généré, donc GitHub est responsable.

Bon réflexe ✅

Texte
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) :

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

Problème :

SQL injection.

Exemple cloud

Code volontairement trop permissif (policy IAM proposée par Copilot) :

JSONRisque à vérifier
{
  "Effect": "Allow",
  "Action": "*",
  "Resource": "*"
}

Problème :

Permissions trop larges.

Exemple test faible

Code volontairement faible (test proposé par Copilot) :

tsRisque à vérifier
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.

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