Utilisation responsable de Copilot dans le cloud

Terminée

Découvrez comment utiliser Copilot dans le cloud de manière responsable en comprenant ses objectifs, ses fonctionnalités et ses limitations.

À la fin de cette unité, vous pourrez :

  • Comprendre l’objectif, les fonctionnalités et les limites de Copilot dans le cloud.
  • Appliquez des pratiques d’utilisation responsable : tâches exploratoires, sécurisation des environnements et validation des résultats.
  • Reconnaître les mesures de sécurité, les risques et les atténuations, et où améliorer les performances.

À propos de Copilot dans le cloud

Lorsque vous exécutez Copilot dans le cloud, il fonctionne en tant qu’agent de développement logiciel autonome et asynchrone dans GitHub. L’agent peut récupérer une tâche à partir d’une issue ou de Copilot dans GitHub, créer une branche, explorer la base de code, générer un plan d’implémentation et rédiger du code, ce qui vous permet de décider si et quand ouvrir une pull request.

Copilot peut générer des modifications personnalisées en fonction de votre description et de vos configurations, notamment des tâches telles que les correctifs de bogues, l’implémentation de nouvelles fonctionnalités progressives, le prototypage, la documentation et la maintenance de la base de code. Si vous décidez de créer une pull request, l’agent peut ensuite itérer avec vous en fonction de vos commentaires et révisions.

Tout en travaillant sur votre tâche, l’agent a accès à son propre environnement de développement éphémère où il peut apporter des modifications à votre code, exécuter des tests automatisés et exécuter des linters. L’agent a été évalué dans divers langages de programmation, avec l’anglais comme langue principale prise en charge.

Fonctionnement de l’agent (de bout en bout)

  • Traitement de la demande

    La tâche fournie à Copilot par le biais d’une issue, d’un commentaire sur une pull request ou d’un message adressé à Copilot dans GitHub est combinée à d’autres informations contextuelles pertinentes pour former une invite. Les entrées peuvent prendre la forme d’un langage naturel brut, d’extraits de code ou d’images.

  • Analyse du modèle de langage

    L’invite est ensuite transmise via un modèle de langage de grande taille, qui analyse l’entrée pour aider l'agent à raisonner sur la tâche et utiliser les outils nécessaires.

  • Génération de réponse

    Le modèle de langage génère une réponse basée sur son analyse de l’invite. Cette réponse peut prendre la forme de suggestions en langage naturel et de suggestions de code.

  • Mise en forme de sortie

    Une fois que l’agent a terminé sa première exécution, il met à jour la description de la demande de tirage avec les modifications qu’il a apportées. L’agent peut inclure des informations supplémentaires sur les ressources auxquelles il n’a pas pu accéder et fournir des suggestions sur les étapes à résoudre.

    Vous pouvez fournir des commentaires à l’agent en commentant dans la pull request ou en mentionnant explicitement l’agent (@copilot). L’agent soumettra ensuite à nouveau ces commentaires au modèle de langage pour une analyse plus approfondie. Une fois que l’agent a terminé les modifications en fonction des commentaires, il répond à votre commentaire avec des modifications mises à jour.

Copilot est destiné à vous fournir la solution la plus pertinente pour la résolution des tâches. Toutefois, il peut ne fournit pas toujours la réponse que vous recherchez. Vous êtes responsable de l’examen et de la validation des réponses générées par Copilot pour vous assurer qu’elles sont précises et appropriées. En outre, dans le cadre de notre processus de développement de produits, GitHub entreprend un Red Teaming (test) pour comprendre et améliorer la sécurité de l’agent.

Cas d’usage pour Copilot dans le cloud

  • Maintenance codebase : Correctifs de sécurité, mises à niveau des dépendances et refactorisation ciblée.
  • Documentation : mise à jour et création d’une documentation.
  • Développement de fonctionnalités : implémentation de demandes de fonctionnalités incrémentielles.
  • Amélioration de la couverture des tests : développement de suites de tests supplémentaires pour la gestion de la qualité.
  • Prototypage de nouveaux projets : mise en place de nouveaux concepts.

Amélioration des performances de Copilot dans le cloud

Pour améliorer les performances et résoudre les limitations, utilisez ces mesures :

Vérifiez que vos tâches sont bien étendues en fournissant :

  • Description claire du problème à résoudre ou du travail requis.
  • Critères d’acceptation complets concernant les caractéristiques d’une bonne solution (par exemple, faut-il prévoir des tests unitaires ?).
  • Indicateurs ou pointeurs sur les fichiers à modifier.

Personnaliser votre expérience avec un contexte supplémentaire

Copilot utilise votre prompt, vos commentaires et le code du référentiel comme contexte lorsqu'il génère des modifications suggérées. Améliorez les résultats en ajoutant des instructions Copilot personnalisées afin que l’agent comprenne comment générer, tester et valider ses modifications.

Autres personnalisations utiles :

Utilisez Copilot en tant qu’outil, et non en remplacement

Passez toujours en revue et testez le contenu généré par l’agent pour vous assurer qu’il répond à vos exigences et est exempt d’erreurs ou de problèmes de sécurité avant la fusion.

Utiliser des pratiques de codage et de révision de code sécurisées

Même si Copilot peut générer du code syntactiquement correct, le code peut ne pas toujours être sécurisé. Continuez à suivre les meilleures pratiques pour le codage sécurisé (évitez les secrets codés en dur, empêchez les vulnérabilités d’injection) et appliquez des tests rigoureux, l’analyse IP et les vérifications des vulnérabilités.

Fournir des commentaires

Si vous rencontrez des problèmes ou des limitations, utilisez l’icône pouces vers le bas sous une réponse de l’agent ou partagez des commentaires dans le forum de discussion de la communauté.

Restez à jour

Copilot dans le cloud évolue. Surveillez les nouveaux risques de sécurité et les meilleures pratiques à mesure qu’ils émergent.

Mesures de sécurité pour Copilot dans le cloud

Éviter l’escalade des privilèges

  • Copilot répond uniquement aux interactions des utilisateurs disposant d’un accès en écriture.
  • Les flux de travail d’actions déclenchés par les demandes de tirage de l’agent nécessitent l’approbation d’un utilisateur disposant d’un accès en écriture avant de s’exécuter.
  • Les caractères masqués (non affichés sur GitHub.com) sont filtrés pour réduire les risques d’injection d’invites.

Limitation des autorisations de Copilot

  • L’agent accède uniquement au référentiel auquel il est limité ; il ne peut pas accéder à d’autres référentiels.
  • Les push sont limités aux branches dont les noms commencent par copilot/ (et non votre branche par défaut).
  • L’agent n’a pas accès aux secrets ou variables d’actions d’organisation/de référentiel au moment de l’exécution. Seuls les secrets/variables ajoutés à l’environnement copilot sont transmis à l’agent.

Prévention de l’exfiltration des données

Un pare-feu est activé par défaut pour empêcher l’exfiltration accidentelle ou malveillante du code ou des données sensibles. Consultez Personnaliser ou désactiver le pare-feu pour GitHub Copilot.

Limitations de Copilot dans le cloud

Selon votre codebase et vos entrées, les performances peuvent varier. Gardez ces contraintes à l’esprit :

  • Étendue limitée et qualité : Le LLM peut ne pas gérer certaines structures de code ou langages obscurs ; la qualité varie selon la couverture linguistique.
  • Biais potentiels : Les données d’apprentissage et le contexte récupéré peuvent inclure des biais ; l’agent peut s’appuyer sur certains langages ou styles.
  • Risques de sécurité : Le code généré est basé sur le contexte du référentiel et peut exposer des informations sensibles s’il n’est pas examiné ; un examen approfondi est nécessaire.
  • Code incorrect : Le code peut s’afficher correctement, mais être sémantiquement/syntactiquement incorrect ou mal aligné avec l’intention. Validez l’ajustement, les modèles et le style.
  • Code public : L'agent peut générer des correspondances ou des correspondances proches avec le code public, même si « Bloquer » est activé ; il est possible que les références ne soient pas fournies.
  • Légal/réglementaire : Assurez la conformité avec les obligations applicables et évitez les utilisations interdites en vertu des conditions de service et des codes de conduite.