Revue de code par IA
Je viens de tester trois outils pour faire de la code review plus efficacement.
Je ne les ai testé que sur deux PRs de transi-store, et une pendant les soucis de github hier, et en particulier sur un correctif sur transi-store.
Cet article est vraiment un "unboxing" des outils, et ils méritent tous l'être approfondis.
L'objectif
Avec du code généré par IA, le goulot d'étranglement n'est plus le temps d'écriture de code, mais est reporté, entre autre, sur le temps de review.
J'ai voulu voir ce que pouvait donner des outils IA spécialisés dans la review.
Les outils testés
- qodo.ai : semble tout frais, et codé 100% avec une IA (ce qui peut permettre de faire du dogfooding facilement)
- coderabbit.ai : j'ai l'impression que c'est le leader du marché de ces outils
- graphite.com : spécialisé dans la review, acheté récemment par cursor.com, qui était là avant l'ère IA, et qui intègre des outils IA à son outil de review
Qodo
L'onboarding est un peu bizarre, à vrai dire on a l'impression que ça plante et que l'intégration github n'est pas faite (ça me demande toujours de "lier" mon compte en page d'accueil)

Cela dit, au bout d'un moment on voit apparaitre des "rules" dans un onglet dédié qui reprend et trie ce qu'il a trouvé dans le fichiers AGENTS.md

Petit détail pas très grave, mais perso le mode noir je trouve ça peu lisible pour autre chose que du code, et on ne peut pas changer le thème.
C'est à peut prêt tout ce qui dans l'interface, tout le reste semble se passer dans github :
Avant tout ça fait un bref résumé pas forcément très utile. Tout l'intérêt est dans la code review.

On voit ici trois points remontés avec leur type. On peut ouvrir le détail d'un retour.
Sur les trois retours qu'il fait, il me force à mettre à jour la documentation utilisateur car j'ai touché (enfin copilot) à l'interface, et il y a une règle en ce sens.
Dans mon cas ce n'est pas vraiment utile car c'est un bugfix.
Les autres retours sont plutôt pertinents pointe bien ce qui est dispo. Il y a même une entrée "évidence" qui "prouve" son point, et propose un prompt à donner à un agent IA pour qu'il fasse la correction.

On peut configurer un peu la façon dont est trigger la revue

On peut par exemple soit faire le trigger en automatique ou si on met un commentaire spécifique, donner des instructions spécifiques, etc.
CodeRabbit
Côté coderabbit, on voit que c'est un outil plus mature : l'onboarding est moins bizarre, il y a une interface plus poussée, avec des dashboards par exemple (je ne sais pas si c'est utile par contre !)
On peut être assez fin dans la configuration des repositories, par exemple choisir la langue de la review :

On peut choisir si coderabbit est "chill" ou "assertive" dans ses retours

On peut configurer l'organisation, les repos, et il y a pas mal de configuration, ajouter des "checks", lui dire comment lancer les tests, appliquer des label github, etc.
Par contre, il n'y a pas l'air d'avoir de gestion de "règles" auto-récupérée comme ce que fait qodo. Il
Il y a cela dit un fonction de correction automatique qui soit commit, soit ouvre une PR pour nous.
Il y a une notion de "learning" qui évolue au fur et à mesure des revues de PR. Dans l'idée c'est bien mais il y a surement besoin d'itérer plusieurs fois pour le faire évoluer (on ne peut pas pré-créer des règles)

Dans mon cas, le retour est un peu moins pertinent que ce que proposait qodo (mais avec aussi moins de bruit)

Il y a aussi un prompt que l'on peut envoyer à un agent IA

Au final, le fix est aussi vraiment "bof" (là encore sur un seul cas) : il m'a ajouté une autre props, donc je me retrouve avec deux props qui font un peu la même chose. Clairement, ça fait penser aux modèles assez peu performants utilisés (mais cela vient de sa suggestion de prompt).
Moi : On ne peut pas mutualiser
isAiBusybool etbusyScope?Copilot (Claude Sonnet 4.6) : Bonne idée — busyScope !== null suffit à remplacer isAiBusy. Je vais fusionner les deux.
On peut cela dit le piloter avec des commentaires directement dans la PR :

Dans l'IDE
Les deux outils proposent des extensions vscode pour faire la review avant d'attendre la PR.
Récap sur les deux outils
Qodo et CodeRabbit sont intéressants dans leur retour, et mettent en lumière des soucis auquels je n'aurait pas forcément pensé.
A première vu, j'ai l'impression que ça va avoir tendance à améliorer la qualité, plutôt que de simplifier la revue de code.
graphite
Je n'ai pas parlé de graphite jusque là car je n'ai pas réussi à activer leurs outils de revue par IA (ça mouline ¯\_(ツ)_/¯)

De ce que j'en comprends, graphite propose un outil en parallèle du workflow classique pour être très efficace.
Par contre, graphite propose un outil qui a l'air vraiment intéressant c'est le mode "tour" sur une PR.

Plutôt que d'avoir un mode "fichier" ou on lit les fichiers dans l'ordre alphabétique, ce qui n'est aucun sens pour review, graphite extrait la logique et propose d'itérer en partant d'un résumé des modification et en avançant "logiquement" dans la review.

Chaque bloc contient un descriptif du fichier et les lignes qui corresponde au "bloc fonctionnel" à review.
Vu que graphite a été racheté par cursor, les deux sont maintenant liés, et je n'ai pas encore testé mais cursor permet d'avoir une indexation sémantique des fichiers.
Outils non testé
Je n'ai pas encore testé Cursor BugBot car il n'ont pas d'essai gratuit.