Utilisation responsable de l’agent de codage GitHub Copilot sur GitHub.com
Découvrez comment utiliser l’agent de codage Copilot sur GitHub.com 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 l’agent de codage Copilot sur GitHub.com.
- 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 l’agent de codage Copilot sur GitHub.com
L’agent de codage Copilot est un agent de développement logiciel autonome et asynchrone intégré à GitHub. L’agent peut récupérer une tâche à partir d’un problème ou de Copilot Chat, créer un pull request, puis itérer sur le pull request en réponse aux commentaires.
L’agent de codage Copilot peut générer des modifications personnalisées en fonction de votre description et de vos configurations, notamment les tâches telles que les correctifs de bogues, l’implémentation de nouvelles fonctionnalités incrémentielles, le prototypage, la documentation et la maintenance de codebase. Une fois la demande de tirage initiale créée, l’agent peut itérer avec vous, en fonction de vos commentaires et avis.
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’un problème, d’un commentaire de demande de tirage ou d’un message de conversation Copilot est combinée avec 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 l’agent de codage Copilot
- 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 pour l’agent de codage Copilot
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
L’agent de codage Copilot tire parti de votre invite, commentaires et du code du référentiel en tant que contexte lors de la génération de 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 :
- Personnalisation de l’environnement de développement pour l’agent de codage GitHub Copilot
- Personnalisation ou désactivation du pare-feu pour l’agent de codage GitHub Copilot
- Extension de l’agent de codage GitHub Copilot avec le protocole MCP (Model Context Protocol)
Utiliser l’agent de codage Copilot en tant qu’outil, pas un 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
Bien que l’agent de codage Copilot puisse générer du code syntactiquement correct, il 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
L’agent de codage Copilot évolue. Surveillez les nouveaux risques de sécurité et les meilleures pratiques à mesure qu’ils émergent.
Mesures de sécurité pour l’agent de codage Copilot
Éviter l’escalade des privilèges
- L’agent de codage 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 n'a accès qu'au référentiel où il crée une pull request ; il ne peut pas accéder aux 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 l’agent de codage Copilot GitHub.
Limitations de l’agent de codage Copilot
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.