Julien Deniau

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)

image.png

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

image.png

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.

image.png

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.

image.png

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

image.png

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 :

image.png


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

image.png

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)

image.png

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

image.png

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

image.png

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 isAiBusy bool et busyScope ?

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 :

image.png

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 ¯\_(ツ)_/¯)

image.png

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.

image.png


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.

image.png

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.