Que fait examen-différentiel ?
Effectue une revue différentielle axée sur la sécurité des modifications de code (PR, commits, diffs). Adapte la profondeur d'analyse à la taille du code base, utilise l'historique git pour le contexte, calcule le rayon d'impact, vérifie la couverture de test et génère des rapports complets en markdown. Détecte et prévient automatiquement les régressions de sécurité.
Vue d'ensemble
Cette compétence permet aux agents d'IA de réaliser des revues de sécurité approfondies des changements de code dans un workflow Git. Elle est idéale pour être utilisée dans des pipelines CI/CD ou lors de revues de code ad hoc, où l'accent est mis sur la prévention de l'introduction de vulnérabilités de sécurité.
Fonctionnement
- Analyse de changement : la compétence accepte une référence de branche, un commit hash ou un fichier de diff comme entrée.
- Analyse contextuelle : elle récupère l'historique git pour comprendre le contexte du changement, y compris les commits précédents affectant les mêmes fichiers.
- Profondeur adaptative : selon la taille du code base, elle ajuste la profondeur de l'analyse (par exemple, analyse complète pour les petits dépôts, analyse ciblée pour les grands).
- Calcul du rayon d'impact : elle identifie les dépendances et les parties du code qui pourraient être affectées par le changement.
- Vérification de la couverture de test : elle vérifie si les nouvelles modifications sont couvertes par des tests existants ou si des tests manquent.
- Génération de rapport : elle produit un rapport structuré en Markdown avec des sections pour les vulnérabilités détectées, le rayon d'impact, les problèmes de couverture de test, et les recommandations.
Prérequis
- Un agent d'IA compatible (par exemple, Claude Code, Cursor, Codex).
- Un dépôt Git avec un historique accessible.
- Une clé d'API pour tout service externe (optionnel, par exemple, pour l'analyse de sécurité).
Utilisation
# Exemple d'invocation dans un pipeline CI/CD
differential-review --base main --head feature-branch
# Analyse d'un commit spécifique
differential-review --commit abc123
Sortie
Le rapport généré est un fichier Markdown avec le contenu suivant :
- Résumé : un aperçu des changements.
- Vulnérabilités détectées : liste des problèmes de sécurité potentiels identifiés.
- Rayon d'impact : analyse des dépendances et des zones affectées.
- Couverture de test : évaluation de la présence de tests pour les nouvelles modifications.
- Recommandations : actions concrètes pour atténuer les risques.
Détails techniques
- Langage : Python (pour le script principal).
- Intégration Git : utilise la bibliothèque
gitpythonpour interagir avec l'historique. - Analyse de sécurité : s'appuie sur des règles heuristiques et des patrons de vulnérabilités courantes.
- Limitations : ne remplace pas une revue humaine ; les faux positifs/négatifs sont possibles.
Licence
Voir le fichier LICENSE pour les détails.