Eu criei um hook pre-push do git que usa um LLM para escanear suas diferenças em busca de segredos antes que eles deixem sua máquina. Aqui está como funciona 🧵
Quando você executa git push, o hook é acionado primeiro. Ele descobre o que é novo — seja todos os commits em um novo branch, ou apenas os novos commits em um existente — e gera um git diff de exatamente o que está prestes a ser enviado.
Essa diferença é enviada para o Kimi CLI com um prompt rigorosamente restrito. O modelo é instruído a responder com EXATAMENTE uma das duas strings: SAFE_TO_PUSH ou BLOCK_PUSH.
Ele procura os suspeitos habituais: - Chaves de API (OpenAI, Anthropic, AWS…) - Senhas e tokens de autenticação - Chaves privadas (SSH, SSL, segredos JWT) - Strings de conexão de DB com credenciais - Arquivos .env que se infiltraram em um commit
Se voltar BLOCK_PUSH, o hook sai 1 — o push é rejeitado, e você vê exatamente quais linhas o desencadearam, além de uma classificação de severidade. Corrija, e depois faça o push novamente.
A parte boa de usar um LLM aqui em vez de padrões regex: ele entende o contexto. Um regex para "sk-" captura chaves da OpenAI, mas perde um token interno personalizado chamado PROD_SECRET. O modelo captura ambos.
242