Ho creato un hook pre-push di git che utilizza un LLM per scansionare le tue differenze alla ricerca di segreti prima che lascino mai la tua macchina. Ecco come funziona 🧵
Quando esegui git push, il hook si attiva per primo. Determina cosa c'è di nuovo — o tutti i commit su un nuovo ramo, o solo i nuovi commit su uno esistente — e genera un git diff di esattamente ciò che sta per essere inviato.
Quella differenza viene inviata al Kimi CLI con un prompt strettamente vincolato. Il modello è istruito a rispondere con ESATTAMENTE una delle due stringhe: SAFE_TO_PUSH o BLOCK_PUSH.
Scansiona i soliti sospetti: - Chiavi API (OpenAI, Anthropic, AWS…) - Password e token di autenticazione - Chiavi private (SSH, SSL, segreti JWT) - Stringhe di connessione al DB con credenziali - File .env che si sono infiltrati in un commit
Se torna BLOCK_PUSH, il hook esce 1 — il push viene rifiutato e puoi vedere esattamente quali righe lo hanno attivato, oltre a una valutazione di severità. Correggilo, poi riprova a fare il push.
La cosa bella nell'usare un LLM qui invece di modelli regex: comprende il contesto. Un regex per "sk-" cattura le chiavi OpenAI ma perde un token interno personalizzato chiamato PROD_SECRET. Il modello cattura entrambi.
235