ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Comment configurer Bito AI Code Review Agent dans GitHub Actions pour automatiser la revue de PR et les audits de sécurité

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

Les responsables de l'ingénierie logicielle et les équipes dédiées à la productivité des développeurs (DevEx) font face à un goulot d'étranglement récurrent : les ingénieurs seniors consacrent entre 20 % et 30 % de leur temps de travail à la relecture des Pull Requests (PRs). Une part disproportionnée de ces heures est gaspillée à repérer des erreurs de syntaxe élémentaires, du code passe-partout redondant, des écarts de style et l'absence de tests unitaires minimaux. Cette revue initiale manuelle allonge considérablement la durée de vie des PRs, induit une lassitude d'analyse et détourne les profils expérimentés de l'évaluation architecturale et de la logique métier critique.

L'AI Code Review Agent de Bito (gitbito/codereviewagent) a été conçu pour constituer une première ligne de défense automatisée. Contrairement aux linters traditionnels limités à la simple recherche de motifs, Bito développe une compréhension contextuelle approfondie du dépôt grâce aux arbres de syntaxe abstraite (AST), aux tables de symboles et aux représentations vectorielles (embeddings). Intégré à GitHub Actions, il évalue chaque modification proposée, exécute des outils d'analyse statique, détecte les vulnérabilités de sécurité potentielles et soumet des suggestions de code en ligne structurées, applicables en un seul clic.

Ce guide technique détaille pas à pas la configuration complète de Bito AI Code Review Agent dans GitHub Actions : gestion des secrets d'authentification, fichier de workflow de production, intégration des moteurs d'analyse statique et de sécurité, injection des standards d'équipe et contrôle du bruit de notification.


Vue d'ensemble de l'architecture : Fonctionnement de Bito en CI/CD

L'agent Bito s'exécute directement au cœur de votre pipeline CI/CD, que vous utilisiez les exécuteurs gérés par GitHub (ubuntu-latest) ou des exécuteurs auto-hébergés (Self-Hosted Runners).

+-----------------------------------------------------------------------------------+
| Événement de dépôt GitHub (PR ouverte / mise à jour / commande en commentaire)    |
+-----------------------------------------------------------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
| Exécuteur GitHub Actions (Runner)                                                 |
|                                                                                   |
|  1. Récupère le diff et le contexte du dépôt (indexation AST et des symboles)     |
|  2. Exécute les moteurs statiques (fb_infer, astral_ruff, mypy, OWASP)             |
|  3. Charge les règles personnalisées (CLAUDE.md, GEMINI.md, AGENTS.md, .bito.yaml)|
|  4. Interroge le moteur Bito AI via BITO_ACCESS_KEY (aucun code utilisé en entrainement)
+-----------------------------------------------------------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
| Interface Pull Request GitHub                                                     |
|  - Synthèse globale de la PR et score de risque                                   |
|  - Commentaires en ligne avec blocs de code applicables en 1 clic                 |
|  - Prise en charge des commandes interactives (/review, /review security, etc.)   |
+-----------------------------------------------------------------------------------+

Points clés de l'architecture :


Prérequis et configuration des accès

Avant de déposer le fichier de workflow, vous devez renseigner les informations d'authentification nécessaires dans le dépôt GitHub.

1. Génération des clés obligatoires

2. Enregistrement des Secrets GitHub

Sur le dépôt ciblé, accédez à Settings > Secrets and variables > Actions > Secrets :

3. Vérification des droits GitHub Actions

Dans Settings > Actions > General :


Configuration pas à pas du workflow GitHub Actions

Créez le fichier de description du workflow à l'emplacement .github/workflows/bito_code_review.yml.

Fichier YAML de production

name: Bito AI Code Review Agent

on:
  pull_request:
    types: [opened, synchronize, reopened]
  issue_comment:
    types: [created]

concurrency:
  group: bito-cra-${{ github.workflow }}-${{ github.event.pull_request.number || github.event.issue.number }}
  cancel-in-progress: true

jobs:
  bito_review:
    # Exécution lors d'une mise à jour de PR ou d'une commande /review saisie en commentaire
    if: >
      github.event_name == 'pull_request' ||
      (github.event_name == 'issue_comment' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/review'))
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
      issues: write

    steps:
      - name: Récupération du code source
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Lancement du Bito AI Code Review Agent
        uses: gitbito/codereviewagent@main
        env:
          BITO_ACCESS_KEY: ${{ secrets.BITO_ACCESS_KEY }}
          GIT_ACCESS_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }}
          # Intégration d'outils d'analyse statique
          STATIC_ANALYSIS_TOOL: "fb_infer,astral_ruff,mypy"
          # Filtrage des branches et réduction du bruit
          EXCLUDE_BRANCHES: "main,master,production"
          EXCLUDE_FILES: "*.min.js,*.lock,package-lock.json,yarn.lock,vendor/**,dist/**,docs/**"
          EXCLUDE_DRAFT_PR: "true"
          # Niveau de détail des suggestions : essential (anomalies critiques uniquement) ou comprehensive
          SUGGESTION_MODE: "essential"

Environnements avec exécuteurs auto-hébergés (Self-Hosted Runners)

Pour les infrastructures internes ou GitHub Enterprise Server :

  1. Créez un fork ou un miroir du dépôt gitbito/codereviewagent au sein de votre organisation interne (par exemple myorg/gitbito-bitocodereview).
  2. Mettez à jour le champ runs-on avec le label de votre runner interne : runs-on: [self-hosted, linux, x64].
  3. Ajustez la référence de l'action : uses: myorg/gitbito-bitocodereview@main.
  4. Ajoutez la variable de dépôt GIT_DOMAIN contenant votre domaine interne (par exemple github.internal.mycompany.com).

Audits de sécurité et analyse statique intégrés

Bito associe des outils d'analyse statique renommés à des consignes de sécurité avancées pour intercepter les anomalies dès la phase de merge request.

1. Activation des moteurs d'analyse statique

La déclaration STATIC_ANALYSIS_TOOL: "fb_infer,astral_ruff,mypy" ordonne à l'agent d'exécuter des contrôles déterministes en amont :

2. Périmètre de détection des vulnérabilités

Pendant la revue, Bito examine le code au regard des risques majeurs du Top 10 OWASP :

3. Commandes interactives disponibles dans les PRs

Les développeurs peuvent piloter l'agent directement via la zone de commentaires de GitHub :

Commande en PRAction exécutéeCas d'usage privilégié
/reviewLance une revue incrémentale sur les derniers commits ajoutés.Itérations classiques au cours du sprint.
/review fullRéévalue l'intégralité des fichiers modifiés dans la PR.Validation finale d'un refactoring d'envergure.
/review securityDéclenche un audit de sécurité dédié (OWASP, secrets, droits).PRs touchant au paiement, à l'authentification ou à l'infrastructure.
/review performanceExamine la complexité algorithmique, les requêtes N+1 et la mémoire.Microservices à fort trafic et traitements par lots.
/pause / /resumeSuspend ou réactive les déclenchements automatiques sur la PR.Prototypage rapide avec commits intermédiaires fréquents.
/resolveMarque automatiquement comme résolus les commentaires Bito corrigés.Nettoyage des échanges avant la fusion.

Application des conventions et règles personnalisées d'équipe

Les règles d'architecture propres à chaque entreprise ne pouvant être devinées par un modèle généraliste, Bito permet d'ingérer des fichiers de règles déposés à la racine du projet.

Fichiers de règles reconnus

Bito analyse automatiquement l'un des fichiers Markdown suivants s'il est présent à la racine :

Exemple de configuration AGENTS.md

# Standards de Revue de Code de l'Équipe

## Architecture et Persistance
- Concaténation brute de requêtes SQL interdite ; utiliser systématiquement SQLAlchemy ORM ou des requêtes préparées.
- Dans les routes FastAPI asynchrones (async def), aucun appel bloquant synchrone d'E/S n'est autorisé.
- La logique métier doit être isolée dans `services/` et ne jamais figurer dans les contrôleurs de routes.

## Gestion des Erreurs et Observabilité
- Ne jamais intercepter l'exception générique `Exception` ; lever et traiter des exceptions métier explicites.
- Tous les appels HTTP sortants doivent comporter un timeout explicite fixé entre 2 et 5 secondes.
- Les logs doivent impérativement être émis au format JSON structuré avec un identifiant de corrélation (Trace ID).

## Données Personnelles et Sécurité
- Les données sensibles (numéro de téléphone, coordonnées bancaires) ne doivent jamais figurer en clair dans les logs ou les réponses d'erreur.

Lors de la revue, Bito confronte chaque ligne modifiée à ces consignes et génère une proposition conforme dès qu'un écart est constaté.


Bonnes pratiques pour limiter le bruit et favoriser l'adoption

Le principal motif de rejet des robots de revue réside dans la multiplication de remarques mineures sans valeur ajoutée. Quelques ajustements permettent une adoption harmonieuse :

  1. Privilégier le mode essential au démarrage : En configurant SUGGESTION_MODE: "essential", l'agent se limite aux anomalies réelles et aux failles de sécurité, évitant les débats stériles sur les préférences de style.
  2. Exclure la branche principale de la revue directe : Paramétrez EXCLUDE_BRANCHES: "main,master". L'intérêt de l'agent réside dans le contrôle préalable au merge, analyser les commits directement sur la branche principale consomme inutilement des ressources.
  3. Ignorer les fichiers générés et les lockfiles : Renseignez EXCLUDE_FILES pour filtrer package-lock.json, les bundles compilés et les assets volumineux.
  4. Ignorer les Pull Requests en brouillon (Drafts) : Activez EXCLUDE_DRAFT_PR: "true" afin de ne lancer l'analyse que lorsque la PR est marquée "Ready for review".
  5. Inciter au dialogue : Les ingénieurs peuvent poser des questions à l'agent en mentionnant @bitoagent ou @askbito dans les réponses pour demander des clarifications ou une variante compatible.

Modèle économique et critères de décision

Bito AI Code Review Agent repose sur une tarification par utilisateur (Per-Seat), sans facturation à l'usage du nombre de tokens consommés :

Recommandation finale

Pour les organisations comptant plus de 15 développeurs confrontées à des temps d'attente prolongés sur leurs revues de code, la mise en place de Bito AI Code Review Agent dans GitHub Actions offre un gain d'efficacité immédiat. En assumant le tri initial des anomalies et la veille de sécurité, l'agent décharge les profils seniors et permet d'accélérer le cycle de fusion des PRs de 30 % à 50 %.


Références