
Chez Microsoft, nous recherchons constamment des moyens d'améliorer la productivité des développeurs et la qualité du code. L'une de nos innovations les plus marquantes dans ce domaine est l'assistant de révision de code basé sur l'IA, un outil d'IA qui améliore les révisions des demandes d'extraction (PR). Cet assistant IA a d'abord été testé en interne, puis a été étendu pour prendre en charge plus de 90 % des PR dans toute l'entreprise, ce qui représente plus de 600 000 demandes d'extraction par mois. Il aide nos ingénieurs à détecter plus rapidement les problèmes, à terminer plus vite les PR et à appliquer des bonnes pratiques cohérentes, le tout dans le cadre de notre workflow de développement standard.
Nous avons développé cette fonctionnalité en étroite collaboration avec l'équipe Data & AI de notre division Développement. Les connaissances et l'expérience acquises en interne ont été intégrées à l'offre de révision de code alimentée par l'IA de GitHub et profitent désormais à des clients externes. C'est un exemple de la manière dont l'innovation interne (1P) a façonné des produits tiers (3P) et dont l'utilisation externe continue d'alimenter les améliorations internes.
Résoudre les problèmes réels liés à la révision des PR grâce à l'IA
Les pull requests (PR) sont un élément essentiel du workflow de développement, mais elles peuvent également être source de friction. Les réviseurs passent souvent du temps sur des commentaires de faible valeur, tels que des problèmes de syntaxe ou des incohérences dans la nomenclature, tandis que des questions plus importantes, telles que les décisions architecturales ou les implications en matière de sécurité, peuvent être négligées ou retardées. Les auteurs, quant à eux, peuvent avoir du mal à fournir suffisamment de contexte, en particulier lorsque les PR sont volumineuses ou couvrent plusieurs fichiers.
Il y a également le défi de l'échelle : avec des milliers de développeurs et de référentiels, il est difficile de garantir que chaque PR fasse l'objet d'une révision rapide et approfondie. Nous avons vu des cas où les PR ont attendu des jours, voire des semaines, avant d'être fusionnées, ou où des commentaires importants ont été omis. Ces points faibles nous ont motivés à essayer l'assistance de l'IA dans le processus de révision. L'objectif était de laisser l'IA gérer les aspects répétitifs ou facilement négligés des révisions, afin de libérer les réviseurs humains qui pourraient ainsi se concentrer sur des questions de plus haut niveau.
Notre solution a consisté à intégrer un réviseur de code IA dans le flux de travail PR existant. Chaque fois qu'une pull request est créée, l'assistant IA intervient automatiquement en tant que réviseur. Voici ce qu'il fait :
- Vérifications et commentaires automatisés : l'IA examine les modifications du code et laisse des commentaires, comme le ferait un réviseur humain. Elle signale toute une série de problèmes, allant de choses simples comme des incohérences de style et des bugs mineurs, à des problèmes plus subtils comme une référence nulle potentielle ou un algorithme inefficace.
Par exemple, si un développeur introduit une méthode qui ne gère pas correctement une condition d'erreur, l'IA peut commenter cette ligne spécifique avec un avertissement et une explication. Ces commentaires apparaissent dans le fil de discussion PR, de sorte que l'auteur et les autres réviseurs peuvent les voir et agir (comme si un collègue avait fait ces remarques). Chaque suggestion est associée à une catégorie, par exemple « gestion exceptionnelle », « vérification nulle » ou « données sensibles », ce qui aide à comprendre l'impact associé. En détectant ces problèmes à un stade précoce, l'IA réduit la charge de travail des pairs humains et garantit que les problèmes évidents ne sont pas négligés. - Améliorations suggérées : outre les révisions, l'assistant suggère même des améliorations spécifiques du code. S'il identifie un bug ou un modèle de code sous-optimal, il propose un extrait de code corrigé ou une implémentation alternative à l'auteur. Bien que puissant, il est également conçu avec des mesures de sécurité à l'esprit. Lorsque l'IA suggère des modifications de code, elle ne les valide pas directement. L'auteur garde le contrôle : il examine, modifie et décide d'accepter ou non la suggestion en cliquant explicitement sur l'option « appliquer la modification ». Toutes les modifications sont attribuées à l'historique des validations, ce qui préserve la responsabilité et la transparence.
- Génération d'un résumé de la PR : l'IA génère également un résumé de la PR, qui est essentiellement une description écrite par l'IA de ce que fait la modification du code. Cela permet de résoudre un problème courant, à savoir que plusieurs PR ne comportent pas de description bien rédigée. L'IA examine les différences et tente d'expliquer l'intention de la modification et met en évidence les changements clés. Les réviseurs ont trouvé cela extrêmement utile : cela nous aide à comprendre la situation dans son ensemble sans avoir à déchiffrer manuellement chaque fichier.
- Questions-réponses interactives (« Demandez à l'IA ») : les réviseurs peuvent également engager une conversation avec l'assistant dans le cadre de la discussion sur la PR. Si un élément du code n'est pas clair, un réviseur peut poser des questions à l'IA sur le code ou demander des éclaircissements. Par exemple, « Pourquoi ce paramètre est-il nécessaire ici ? » ou « Quel est l'impact de cette modification sur le module X ? » L'IA peut analyser le code et fournir des réponses, agissant comme un co-réviseur compétent disponible à la demande.
Ce qui rend l'utilisation de le réviseur IA efficace, c'est la façon dont il s'intègre naturellement dans les flux de travail existants. Il est traité comme n'importe quel autre réviseur : pas de nouvelle interface utilisateur à apprendre, pas d'outils supplémentaires à installer. Les développeurs peuvent interagir avec lui de manière conversationnelle, directement dans le fil de discussion PR, ce qui donne l'impression qu'il s'agit d'une extension transparente de l'équipe. Il peut même être configuré pour s'activer automatiquement dès qu'un PR est créé, agissant comme le premier réviseur, toujours présent, toujours prêt. Cette intégration sans friction a été la clé de son adoption et de son impact élevés.
Impact sur la qualité et la vitesse
L'adoption et l'impact du réviseur IA ont été significatifs. Voici quelques-uns de ses avantages :
- Cycles de révision plus rapides : grâce à l'IA qui effectue un premier passage sur chaque PR, les équipes ont remarqué que le temps global nécessaire pour traiter une pull request a diminué. D'après les premières expériences et études en science des données, les 5 000 référentiels intégrés à l'AI code reviewer ont observé une amélioration de 10 à 20 % du temps médian de traitement des PR.
L'IA détecte souvent les problèmes et suggère des améliorations dans les minutes qui suivent la création de la PR, ce qui signifie que les auteurs peuvent les traiter rapidement, sans attendre le calendrier d'un réviseur humain. Cela signifie également moins de cycles d'allers-retours pour les corrections mineures, de sorte que les PR peuvent être approuvées et fusionnées plus rapidement. - Amélioration de la qualité du code : cela contribue à améliorer la qualité de base des révisions de code en fournissant des conseils sur les normes de codage et les meilleures pratiques à tous les niveaux. Dans plusieurs cas, l'IA a signalé des bogues qui auraient pu être négligés, par exemple en détectant un contrôle de nullité manquant ou un appel API mal ordonné qui aurait pu provoquer une erreur d'exécution. En détectant ces problèmes avant la fusion du code, nous évitons des incidents potentiels en aval.
- Apprentissage des développeurs : il peut agir comme un mentor qui examine chaque ligne de code et explique les améliorations possibles. Il peut notamment servir de guide utile pour les nouvelles recrues, accélérant leur intégration et leur apprentissage des meilleures pratiques.
Personnalisation : adaptez la révision à votre équipe
L'une des fonctionnalités puissantes offertes est sa configurabilité et son extensibilité. Les équipes peuvent personnaliser l'expérience afin de fournir des directives spécifiques au référentiel. Elles peuvent également définir des invites de révision personnalisées spécifiques à leurs scénarios. Les équipes de toute l'entreprise tirent parti de ces personnalisations pour effectuer des révisions spécialisées, comme l'identification des régressions basées sur les modèles historiques de plantage ou la vérification de la mise en place des portes de vol et de changement.
Co-évolution des solutions 1P et 3P
Une question naturelle se pose : en quoi la révision interne par IA de Microsoft profite-t-elle à l'ensemble de la communauté des développeurs ? En tant que premiers utilisateurs et testeurs internes des révisions de code basées sur l'IA, nous avons pu nous familiariser très tôt avec cette technologie, ce qui nous a permis d'améliorer rapidement la qualité des révisions, leur facilité d'utilisation et la confiance des développeurs, grâce aux commentaires directs de nos équipes d'ingénieurs.
Les informations, les modèles et les succès que nous avons observés en interne ont non seulement validé la valeur des révisions assistées par l'IA, mais ont également contribué à définir des expériences telles que les suggestions en ligne et les flux de révision impliquant une intervention humaine. Cette boucle de rétroaction a largement contribué au lancement par GitHub de Copilot for Pull Request Reviews, qui a été mis à la disposition du grand public en avril 2025, apportant ces innovations à des millions de développeurs dans le monde entier.
Dans le même temps, les enseignements tirés de l'utilisation de GitHub Copilot pour la révision des Pull Request sont réintégrés dans le processus de développement interne de Microsoft. Cette coévolution garantit que les développeurs de Microsoft et la communauté des développeurs au sens large bénéficient tous deux des progrès de l'IA en matière de révision de code.
Conclusion
Les révisions de code basées sur l'IA sont un catalyseur qui transforme notre approche des révisions de code à grande échelle. En combinant la puissance des grands modèles linguistiques et la rigueur des workflows humains, elles permettent aux développeurs d'écrire un meilleur code plus rapidement. Les réviseurs obtiennent des informations plus approfondies, les auteurs reçoivent des commentaires exploitables et les équipes avancent avec plus de confiance.
Et ce n'est que le début. Grâce à des investissements continus dans la personnalisation et la qualité, l'IA est en passe de redéfinir l'expérience des développeurs chez Microsoft. À l'avenir, nous nous concentrerons sur l'approfondissement de sa conscience contextuelle, en intégrant des conseils spécifiques aux référentiels, en référençant les PR passés et en tirant des enseignements des modèles de révision humains afin de fournir des informations plus en phase avec les normes et les attentes des équipes.
Cela permettra aux réviseurs de se concentrer entièrement sur les commentaires à forte valeur ajoutée, tandis que l'IA se chargera des principales vérifications de routine, rationalisant ainsi le processus de révision et améliorant à la fois la rapidité et la cohérence. C'est un avenir qui nous enthousiasme, un avenir où la livraison de code de haute qualité sera plus facile et plus rapide, grâce au soutien de l'IA à chaque étape du processus.
Que vous travailliez chez Microsoft ou que vous contribuiez à la communauté des développeurs au sens large, l'IA peut vous aider à coder plus intelligemment. Essayez la révision de code de GitHub Copilot et intégrez l'IA à votre flux de travail.
Source : Essayez la révision de code de GitHub Copilot
Et vous ?


Voir aussi :



Vous avez lu gratuitement 2 635 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.