OpenClaw
Cas d'utilisationDébutant10 min

Automatiser les revues de PR GitHub avec OpenClaw

Apprends a mettre en place un workflow de revue de PR automatisee avec les skills OpenClaw : integration GitHub, PR Reviewer et Conventional Commits pour des revues de code coherentes et de qualite.

Dernière mise à jour: 2026-03-31

Skills requis

GitHub (gh)
Recommandé

Opérer GitHub via le CLI gh (issues, PRs, repos).

Voir le Guide
PR Reviewer
Recommandé

Revue de code automatisée pour les pull requests.

Voir le Guide
Conventional Commits
Recommandé

Générer/valider des messages Conventional Commits.

Voir le Guide

Ce que tu vas construire

Un pipeline de revue de PR entierement automatise :

  1. Creation de PR — l'IA genere des descriptions a partir de ton historique de commits
  2. Revue de code — analyse automatique pour detecter les bugs, failles de securite et problemes de style
  3. Normalisation des commits — application du format Conventional Commits
  4. Feedback actionnable — commentaires de revue directement sur les lignes de code dans la PR

Une fois en place, chaque PR declenchera automatiquement une revue par IA, sans intervention manuelle.

Pourquoi automatiser les revues de code

La revue de code manuelle est indispensable, mais elle a ses limites en pratique :

  • Qualite variable — chaque reviewer se concentre sur des aspects differents. L'un regarde les conventions de nommage, l'autre la gestion des erreurs. Ce qui est detecte depend de « qui review ce jour-la »
  • Fatigue du reviewer — apres quelques centaines de lignes, l'attention chute nettement. Les etudes montrent qu'au-dela de 60 minutes de revue continue, l'efficacite baisse considerablement. Les bugs critiques se cachent souvent en fin de diff
  • Delai d'attente — les reviewers ont leur propre travail. Une PR peut attendre des heures, voire des jours. Cela bloque l'auteur, encourage les grosses PR accumulees et genere des conflits de merge
  • Probleme de passage a l'echelle — plus l'equipe grandit, plus le goulot d'etranglement s'aggrave. Les devs seniors passent de plus en plus de temps a reviewer, et les nouveaux ne connaissent pas encore assez la codebase

La revue par IA ne remplace pas les reviewers humains — elle gere les verifications systematiques (patterns de securite, bugs courants, violations de style) pour que les humains puissent se concentrer sur l'architecture, les choix de design et la logique metier. C'est un premier passage qui releve le niveau de qualite de base avant meme qu'un humain n'ouvre la PR.

Prerequis

Avant de commencer, assure-toi d'avoir :

  • OpenClaw installe et configure (Guide de demarrage)
  • GitHub CLI (gh) installe et authentifie (gh auth login)
  • Un depot GitHub pour tester (un projet personnel suffit)
  • Node.js 18+

Etape 1 : Installer les Skills necessaires

Installe les trois Skills dans l'ordre :

bash
# 1. Integration GitHub (base)
npx clawhub@latest install github

# 2. PR Reviewer (analyse de code)
npx clawhub@latest install pr-reviewer

# 3. Conventional Commits (formatage des commits)
npx clawhub@latest install conventional-commits

Verifie l'installation :

bash
clawhub list

Les trois Skills doivent apparaitre comme installed.

Etape 2 : Configurer l'authentification GitHub

Le Skill GitHub a besoin d'un Personal Access Token avec les scopes suivants :

  • repo — acces complet au depot
  • read:org — lecture des membres de l'organisation (optionnel, pour les depots d'organisation)

Si tu t'es deja authentifie avec gh auth login, le Skill utilisera tes identifiants existants. Sinon :

bash
# Verifier le statut d'authentification
gh auth status

# Se connecter si necessaire
gh auth login

Etape 3 : Configurer PR Reviewer

Le Skill PR Reviewer fonctionne directement, mais tu peux personnaliser son comportement :

bash
# Voir la configuration par defaut
clawhub inspect pr-reviewer

Options de configuration principales :

  • Profondeur de revue : quick (survol) ou thorough (analyse en profondeur)
  • Domaines de focus : securite, performance, style, bugs, ou tous
  • Commentaire automatique : poster ou non les commentaires directement sur la PR

Etape 4 : Creer ta premiere revue automatisee

Testons le workflow avec une vraie PR :

4.1 Creer une branche

bash
git checkout -b feature/test-ai-review

4.2 Ecrire du code

Modifie un fichier dans ton projet. Pour tester, essaie d'introduire des problemes courants que le reviewer peut detecter :

Await manquant (bug asynchrone) :

javascript
// Bug : await manquant sur un appel asynchrone
function getUserData(userId) {
  const response = fetch(`/api/users/${userId}`);  // Await manquant
  return response.json();  // TypeError: response.json is not a function
}

Injection SQL :

python
# Securite : l'input utilisateur est directement interpole dans la requete SQL
def get_user(user_id):
    query = f"SELECT * FROM users WHERE id = '{user_id}'"  # Risque d'injection SQL
    return db.execute(query)

Secret en dur :

javascript
// Securite : cle API exposee dans le code source
const stripe = require('stripe')('sk_live_abc123secretkey');

Probleme de requete N+1 :

python
# Performance : requete N+1 — une requete par commande
def get_orders_with_items(user_id):
    orders = Order.objects.filter(user_id=user_id)
    for order in orders:
        order.items = OrderItem.objects.filter(order_id=order.id)  # N+1 !
    return orders

4.3 Commiter avec Conventional Commits

Pas besoin d'ecrire le message de commit a la main, laisse OpenClaw le generer :

bash
git add .
# OpenClaw genere un message de commit au format Conventional Commits
# ex. "feat(api): add getUserData function for user data retrieval"

4.4 Creer et reviewer la PR

bash
# OpenClaw cree la PR avec une description generee par IA
# Puis PR Reviewer analyse automatiquement le diff

En quelques secondes, tu verras :

  • Une description de PR bien formatee resumant tes changements
  • Des commentaires de revue sur les lignes de code concernees
  • Un commentaire de synthese avec l'evaluation globale et les suggestions

Exemple de commentaires de revue :

🔒 Probleme de securite (ligne 14, auth.py) :
  L'input utilisateur est directement interpole dans la requete SQL.
  Risque d'injection SQL.
  Correction suggeree : utiliser des requetes parametrees.

  - query = f"SELECT * FROM users WHERE id = '{user_id}'"
  + query = "SELECT * FROM users WHERE id = %s"
  + return db.execute(query, (user_id,))

⚡ Probleme de performance (ligne 8, orders.py) :
  Requete N+1 detectee — OrderItem.objects.filter() est appele
  une fois par commande dans une boucle. Utilise select_related() ou
  prefetch_related() pour regrouper en une seule requete.

  - orders = Order.objects.filter(user_id=user_id)
  + orders = Order.objects.filter(user_id=user_id).prefetch_related('items')

🐛 Bug (ligne 3, api.js) :
  fetch() retourne une Promise mais n'est pas awaite.
  response.json() echouera car response est une
  Promise en attente, pas un objet Response.

  - const response = fetch(`/api/users/${userId}`);
  + const response = await fetch(`/api/users/${userId}`);

Etape 5 : Personnaliser le workflow de revue

Focus securite

Pour les depots sensibles en matiere de securite, configure PR Reviewer pour prioriser les verifications de securite :

  • Patterns d'injection SQL
  • Identifiants ou cles API en dur
  • Gestion de donnees non securisee (input non valide, absence de filtrage)
  • Vulnerabilites de dependances
  • Failles XSS dans le code frontend
  • Patterns de deserialisation non securises

Revue orientee performance

Pour les services sensibles a la performance, oriente le reviewer vers les patterns de performance. Dans les projets React par exemple, le reviewer detecte les re-renders inutiles :

jsx
// Performance : nouvelle reference objet a chaque render, provoquant des re-renders enfants
function ParentComponent({ items }) {
  return (
    <ChildComponent
      style={{ margin: 10 }}        // Nouvel objet a chaque render
      onClick={() => doSomething()}  // Nouvelle fonction a chaque render
    />
  );
}

Configuration pour toute l'equipe

Partage la configuration au sein de ton equipe :

  1. Exporte ta configuration dans un repertoire .openclaw/ du depot
  2. Commite dans le depot
  3. Les membres de l'equipe installent avec la meme config — les Skills detectent automatiquement la configuration au niveau du projet

Avance : Guider le focus de la revue

Tu peux ajuster la direction de la revue du PR Reviewer via des instructions en langage naturel.

Par langage

Lors de la revue, indique a l'Agent ce qu'il doit surveiller :

  • Python : verifier les blocs except: nus, les types hints manquants, les requetes N+1 du Django ORM
  • JavaScript/TypeScript : signaler les console.log oublies, les await manquants, les secrets en dur
  • Rust : signaler les .unwrap() en code de production, suggerer une gestion correcte des Result

Par repertoire

Applique differents niveaux de scrutin par repertoire :

  • Logique metier (src/core/) — revue complete couvrant securite, bugs et performance
  • Tests (src/tests/) — verification rapide de la correction
  • Documentation (docs/) — revue legere du style
  • Scripts (scripts/) — focus securite et bugs

Patterns personnalises

Demande au reviewer de signaler des patterns specifiques au projet :

  • Acces direct a la base de donnees dans les routes API au lieu d'utiliser la couche repository
  • Composants de page sans error boundary
  • Endpoints API sans rate limiting

Integration CI/CD

Pour automatiser les revues sur chaque PR, integre PR Reviewer dans ton pipeline CI/CD.

GitHub Actions

Cree un fichier workflow a .github/workflows/ai-review.yml :

yaml
name: AI PR Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  ai-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install OpenClaw and skills
        run: |
          npm install -g clawhub@latest
          clawhub install pr-reviewer

      - name: Run AI Review
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OPENCLAW_API_KEY: ${{ secrets.OPENCLAW_API_KEY }}
        run: |
          clawhub run pr-reviewer \
            --pr ${{ github.event.pull_request.number }} \
            --repo ${{ github.repository }} \
            --auto-comment

Controler les conditions de declenchement

Limite la revue IA a certaines conditions pour reduire les couts :

yaml
on:
  pull_request:
    types: [opened, synchronize]
    paths-ignore:
      - '*.md'
      - 'docs/**'
      - '.github/**'

Ou exige un label avant de declencher la revue :

yaml
- name: Check for review label
  if: contains(github.event.pull_request.labels.*.name, 'ai-review')
  run: clawhub run pr-reviewer --pr ${{ github.event.pull_request.number }}

Autres plateformes CI

La meme approche fonctionne sur toute plateforme CI supportant Node.js. Les etapes cles :

  1. Installer clawhub et le Skill pr-reviewer
  2. Definir OPENCLAW_API_KEY comme variable d'environnement
  3. Passer le numero de PR et les infos du depot
  4. S'assurer que le bot CI a les droits d'ecriture sur les pull requests

Resultats concrets

Les equipes utilisant ce workflow constatent generalement :

  • Delai de traitement des PR reduit de 40 % — l'IA traite les problemes evidents avant la revue humaine
  • Qualite de revue constante — chaque PR recoit la meme analyse rigoureuse
  • Historique de commits plus propre — les Conventional Commits rendent les changelogs automatiques
  • Moins de bugs en production — l'IA detecte des problemes que les humains peuvent manquer

Resolution de problemes

« GitHub CLI not found »

Assure-toi que gh est installe et dans ton PATH :

bash
# macOS
brew install gh

# Linux
sudo apt install gh

# Windows
winget install GitHub.cli

« Permission denied » a la creation de PR

Verifie les scopes de ton token :

bash
gh auth status

Assure-toi que le scope repo est inclus. Reauthentifie-toi si necessaire :

bash
gh auth login --scopes repo

PR Reviewer ne commente pas

Verifie que le Skill est installe et configure :

bash
clawhub inspect pr-reviewer

Confirme que ton fournisseur d'IA OpenClaw est configure et dispose de credits disponibles.

Questions Fréquentes

Oui. Le Skill GitHub utilise la CLI `gh`, qui supporte pleinement GitHub Enterprise Server et GitHub Enterprise Cloud. Configure ton hote d'entreprise avec `gh auth login --hostname github.tonentreprise.com`. Une fois authentifie, tous les Skills GitHub d'OpenClaw — y compris PR Reviewer — fonctionnent exactement comme avec github.com. Aucune configuration supplementaire n'est necessaire.

Le Skill GitHub est specifique a GitHub, mais PR Reviewer et Conventional Commits fonctionnent avec n'importe quelle plateforme Git. Pour GitLab, installe le Skill GitLab et passe des Merge Request IDs au lieu de numeros de PR. Bitbucket fonctionne de la meme maniere avec son propre Skill. La logique de revue est agnostique de la plateforme — seule la couche d'integration qui poste les commentaires differe.

La revue IA complete la revue humaine plutot que de la remplacer. Elle excelle dans les verifications systematiques — detecter les failles de securite, les patterns de bugs courants, les violations de style et les anti-patterns de performance de maniere constante, sans fatigue. Mais elle n'evalue pas les decisions d'architecture de haut niveau, la correction de la logique metier, ni si l'approche globale est la bonne. Le meilleur workflow utilise la revue IA comme premier passage pour les verifications mecaniques, liberant les reviewers humains pour le design et l'intention.

Le cout depend de ton fournisseur d'IA et de la taille du diff analyse. Une revue de PR typique analysant un diff de 500 lignes coute environ 0,01 a 0,05 $ chez la plupart des fournisseurs. Les diffs plus gros (1000+ lignes) peuvent couter jusqu'a 0,10-0,15 $. Tu peux controler les couts en reglant la profondeur de revue sur `quick` pour les chemins non critiques et en utilisant des filtres de chemin pour ignorer les fichiers generes, les repertoires vendor et la documentation.

Oui. PR Reviewer supporte une configuration flexible des patterns de fichiers. Tu peux exclure des fichiers par pattern glob (ex. `**/*.generated.ts`, `vendor/**`), limiter les revues a certains repertoires, ou definir differentes profondeurs par chemin. Configure cela dans ton fichier `.openclaw/pr-reviewer.yml`. La plupart des equipes excluent les fichiers auto-generes, les fichiers lock et les dependances vendor pour concentrer les revues sur le code reellement ecrit par l'equipe.

PR Reviewer traite les gros diffs en les decoupant en blocs logiques analyses individuellement. Pour les PR de plus de 1000 lignes, il priorise les fichiers a haut risque — les fichiers touchant a l'authentification, aux requetes de base de donnees, aux endpoints API et a la logique sensible en matiere de securite sont revus a profondeur maximale. Les fichiers a risque moindre comme les tests et les changements de configuration recoivent un passage plus leger. Tu peux aussi configurer un seuil de lignes qui declenche un avertissement suggerant a l'auteur de decouper la PR.

Oui. PR Reviewer supporte tous les langages majeurs : JavaScript, TypeScript, Python, Go, Rust, Java, C#, Ruby, PHP et plus encore. Il applique automatiquement des regles specifiques au langage — par exemple, verifier les `.unwrap()` en Rust ou les `await` manquants en JavaScript asynchrone. Tu peux aussi definir des regles personnalisees par langage dans ton fichier de configuration. Le reviewer detecte le langage a partir des extensions de fichier sans aucune configuration manuelle.

La revue IA et les linters ont des objectifs complementaires et fonctionnent bien ensemble. Les linters appliquent des regles deterministes (formatage, ordre des imports, variables non utilisees) tandis que la revue IA detecte des problemes semantiques (bugs logiques, patterns de securite, problemes de performance) que les outils bases sur des regles ne peuvent pas detecter. En CI, lance d'abord ton linter pour les problemes de formatage, puis la revue IA pour l'analyse en profondeur. PR Reviewer connait les regles courantes des linters et evite de dupliquer les retours sur les memes problemes.

OpenClaw suit les metriques de revue de ton depot dans le temps. Lance `clawhub stats pr-reviewer` pour voir un resume des problemes trouves par categorie, combien ont ete resolus avant le merge, et les patterns recurrents dans ta codebase. Cela aide a identifier les problemes repetitifs — par exemple, si les alertes d'injection SQL reviennent souvent, c'est le signe qu'il faut former l'equipe ou ameliorer les abstractions ORM. Tu peux exporter ces metriques en JSON pour les integrer a des tableaux de bord ou des outils de reporting d'equipe.

Oui. Tu peux definir des templates de revue qui appliquent des regles differentes selon les labels de la PR, les conventions de nommage des branches, ou les chemins de fichiers modifies. Par exemple, une branche `hotfix/*` pourrait avoir une revue axee securite a profondeur maximale, tandis qu'une branche `docs/*` ne recoit qu'une verification de style legere. Definis les templates dans ton `.openclaw/pr-reviewer.yml` sous la cle `templates`, et PR Reviewer selectionne automatiquement le template correspondant. Les changements critiques beneficient ainsi d'un examen approfondi sans ralentir les mises a jour a faible risque.

Cas d'utilisation associés