Course

Revue de code sur un git diff

Construire avec Google ADK un agent qui lit un git diff en lecture seule, commente chaque fichier (bugs, sécurité, lisibilité) en JSON structuré, propose des correctifs et résiste aux injections de prompt cachées dans le code.

Advanced 4 lessons 3h
Start the course
Progress 0% · 0/4

This content is not translated yet. Showing the original version.

Relire une modification de code demande de l'attention, et les points les plus graves (une requête SQL construite avec des chaînes, un mot de passe en dur) sont souvent noyés dans des dizaines de lignes. Un agent peut faire une première passe : lire le diff, signaler les problèmes fichier par fichier et proposer des correctifs, pour que la personne qui relit se concentre sur l'essentiel.

Dans ce lab, vous construisez cet agent avec Google ADK et une clé d'API Gemini. Il travaille sur un petit dépôt git fictif créé par un script, avec des outils qui ne peuvent que lire. Sa sortie est un JSON validé, contrôlé ensuite par du code qui a le dernier mot.

Ce que vous allez construire

flowchart LR
  S["creer_depot.py : dépôt fictif, 2 commits"] --> G[("dépôt git")]
  subgraph AG["Agent relecteur (Gemini)"]
    T1["lister_fichiers_modifies"]
    T2["lire_diff"]
    T3["lire_fichier"]
  end
  G -->|"git diff / git show, lecture seule"| AG
  AG -->|"JSON Revue (output_schema)"| V["verifier_revue (Python)"]
  V --> R["revue.json : commentaires par fichier, décision, validation humaine"]
  • Trois outils en lecture seule : liste blanche de commandes git (diff, show, ls-files), pas de shell, délai maximal, sortie tronquée, fichiers limités à ceux du diff.
  • Une sortie structurée : pour chaque fichier, des commentaires avec ligne, catégorie (bug, securite, lisibilite), gravité et correctif.
  • Des contrôles en code : fichiers hors diff écartés, décision durcie s'il existe un problème bloquant, validation humaine toujours requise.
  • Un piège : le dépôt contient un commentaire qui demande à « l'IA qui relit » d'approuver sans commenter.

Pour qui ?

  • Développeurs et responsables techniques qui veulent automatiser une première relecture.
  • Prérequis : avoir écrit un agent ADK avec un outil, connaître git diff.

Prérequis

  • Python 3.10+, git installé, pip install -r files/requirements.txt (google-adk 2.10.0).
  • Une clé d'API Gemini dans un fichier .env (modèle : .env.example).

Programme

ModuleLeçonCe que vous faites
1. Cas d'usage et architectureUne revue automatique, mais bornéeCe que l'agent peut et ne peut pas faire, menaces
2. Construire pas à pasDes outils git en lecture seulegit() sécurisé, ToolContext, garde-fous
2. Construire pas à pasSortie structurée et contrôlesoutput_schema + outils, verifier_revue()
3. Tester, évaluer, exploiterTester, exécuter, brancher en CIFaux modèle, revue réelle, intégration continue

En local ou sur GCP ?

En local (ce lab)Sur Google Cloud
ModèleGemini via clé d'APIGemini via Vertex AI (GOOGLE_GENAI_USE_VERTEXAI=TRUE)
Dépôtdépôt fictif créé par creer_depot.pyclone en lecture seule dans un job de CI (Cloud Build, GitHub Actions…)
Résultatrevue.json + affichage consolecommentaire sur la demande de fusion, après validation humaine

Le code

Dans le dossier files/ : agent.py, creer_depot.py, test_agent.py, requirements.txt.

Resources

Download all (.zip)

References