Remplacer gratuitement les reviews de PR payantes de CodeRabbit avec GitHub Actions + Gemma
(github.com/bssm-oss)J’ai créé un projet open source appelé GemmaCI.
En une ligne, c’est un projet qui vise à faire tourner gratuitement dans GitHub Actions un reviewer IA de PR comparable à CodeRabbit.
CodeRabbit est un bon outil, mais pour utiliser sérieusement les PR reviews sur un repo privé, il faut un forfait payant. D’après la documentation officielle, le forfait Free est centré sur la PR summarization, et les PR reviews sont proposées à partir de l’offre Pro. Pro coûte 24 $/mois/utilisateur avec facturation annuelle, ou 30 $/mois/utilisateur avec facturation mensuelle.
Je l’ai donc créé avec cette idée en tête : « Pour une petite équipe, un projet étudiant ou un side project personnel, ne pourrait-on pas remplacer gratuitement l’expérience essentielle de CodeRabbit ? »
GemmaCI exécute Ollama + le modèle Gemma dans GitHub Actions pour reviewer le diff d’une PR.
Voici les fonctionnalités actuellement disponibles.
- génération d’un commentaire de synthèse de PR
- rédaction de commentaires de review inline sur les lignes modifiées
- échec du check CI en cas de détection d’un finding high / critical
- sortie d’une review basée sur evidence, confidence et recommendation
- réduction du coût de cold start grâce au cache Ollama / modèle
- utilisation avec l’ajout d’un seul fichier workflow
- modèle de sécurité qui considère le diff de PR, la sortie du modèle et les artifacts comme des données non fiables
Les deux points les plus importants étaient la gratuité et la sécurité.
Il ne s’agit pas simplement de jeter un diff à un LLM et de lui faire poster des commentaires : la sortie du modèle est validée par schéma, et seuls les findings réellement étayés par les lignes modifiées sont publiés.
De plus, pull_request_target n’est pas utilisé par défaut. Le but est d’éviter le risque qu’un workflow ou un script modifié par l’auteur de la PR soit exécuté avec des droits d’écriture. Même à l’étape de publication, seul le code fiable de la branche de base est exécuté, et les artifacts ainsi que la sortie du modèle sont à nouveau validés.
La validation a été effectuée en ouvrant une smoke PR directement sur un runner GitHub Actions réel.
Éléments validés :
- exécution du workflow sur un runner GitHub-hosted
- installation d’Ollama et exécution du job de review avec le modèle Gemma
- publication d’un commentaire de synthèse de PR
- publication d’un commentaire inline sur la ligne modifiée
- échec du check lors de la détection d’un finding de sévérité high
Dans la PR de test, une fonction unsafeDivide a été ajoutée volontairement, et GemmaCI a détecté l’« absence de vérification de division par zéro » comme un finding de sévérité high, puis a laissé un commentaire inline.
Le projet n’en est pas encore au point de remplacer complètement CodeRabbit à l’identique. Il ne faut pas en attendre le même niveau de qualité ni les mêmes fonctions d’intégration qu’un reviewer SaaS reposant sur de grands modèles.
En revanche, l’objectif est clair.
« Permettre même à un petit repo, pour lequel payer n’est pas évident, d’ajouter gratuitement une review IA de PR avec un simple fichier workflow. »
GitHub :
https://github.com/bssm-oss/gemmaci
Les retours, issues et PR sont les bienvenus.
Aucun commentaire pour le moment.