Zbudowałem hook pre-push w gicie, który wykorzystuje LLM do skanowania twoich różnic w poszukiwaniu sekretów, zanim jeszcze opuszczą twoją maszynę. Oto jak to działa 🧵
Kiedy uruchamiasz git push, najpierw uruchamia się hook. Określa, co jest nowe — albo wszystkie commity na nowej gałęzi, albo tylko nowe commity na istniejącej — i generuje git diff dokładnie tego, co ma zostać wysłane.
Ten różnicowy wynik jest wysyłany do Kimi CLI z ściśle ograniczonym poleceniem. Model jest instruowany, aby odpowiedzieć DOKŁADNIE jednym z dwóch ciągów: SAFE_TO_PUSH lub BLOCK_PUSH.
Skanuje w poszukiwaniu zwykłych podejrzanych: - Klucze API (OpenAI, Anthropic, AWS…) - Hasła i tokeny autoryzacyjne - Klucze prywatne (SSH, SSL, sekrety JWT) - Ciągi połączeń DB z danymi uwierzytelniającymi - Pliki .env, które wkradły się do commita
Jeśli wróci BLOCK_PUSH, hak kończy działanie z kodem 1 — push jest odrzucany, a Ty widzisz dokładnie, które linie go wywołały, plus ocena powagi. Napraw to, a następnie spróbuj ponownie.
Fajną rzeczą w używaniu LLM tutaj zamiast wzorców regex jest to, że rozumie kontekst. Wzorzec regex dla "sk-" łapie klucze OpenAI, ale pomija niestandardowy wewnętrzny token o nazwie PROD_SECRET. Model łapie oba.
247