J'ai créé un hook pre-push git qui utilise un LLM pour scanner vos différences à la recherche de secrets avant qu'ils ne quittent jamais votre machine. Voici comment cela fonctionne 🧵
Lorsque vous exécutez git push, le hook se déclenche d'abord. Il détermine ce qui est nouveau — soit tous les commits sur une nouvelle branche, soit juste les nouveaux commits sur une branche existante — et génère un git diff de ce qui est sur le point de sortir.
Cette différence est envoyée au Kimi CLI avec une invite strictement contrainte. Le modèle est instruit de répondre avec EXACTEMENT l'une des deux chaînes : SAFE_TO_PUSH ou BLOCK_PUSH.
Il recherche les suspects habituels : - Clés API (OpenAI, Anthropic, AWS…) - Mots de passe et jetons d'authentification - Clés privées (SSH, SSL, secrets JWT) - Chaînes de connexion DB avec identifiants - Fichiers .env qui se sont glissés dans un commit
Si cela revient à BLOCK_PUSH, le hook sort avec 1 — le push est rejeté, et vous voyez exactement quelles lignes l'ont déclenché, ainsi qu'une évaluation de la gravité. Corrigez-le, puis poussez à nouveau.
L'avantage d'utiliser un LLM ici plutôt que des motifs regex : il comprend le contexte. Un regex pour "sk-" attrape les clés OpenAI mais manque un jeton interne personnalisé nommé PROD_SECRET. Le modèle attrape les deux.
266