Я зібрав git pre-push hook, який використовує LLM, щоб сканувати ваші диференціали на секрети ще до того, як вони покинуть комп'ютер. Ось як це працює 🧵
Коли запускаєш git push, гачок спрацьовує першим. Він визначає, що нового — або всі коміти на новій гілці, або лише нові коміти на існуючій — і генерує git-diff того, що саме ось-ось вийде.
Ця різниця надсилається до Kimi CLI з суворо обмеженим запитом. Моделі наказано відповідати ТОЧНО одним із двох рядків: SAFE_TO_PUSH або BLOCK_PUSH.
Він сканує звичних підозрюваних: - Ключі API (OpenAI, Anthropic, AWS тощо) - Паролі та токени автентифікації - Приватні ключі (секрети SSH, SSL, JWT) - Рядки з'єднання бази даних з кредами - .env-файли, які проникли у коміт
Якщо він повертається BLOCK_PUSH, гачок виходить з першого — поштовх відхиляється, і ви бачите, які саме лінії його спровокували, плюс рейтинг тяжкості. Виправляй, потім натискай знову.
Перевага використання LLM замість regex-патернів полягає в тому, що він розуміє контекст. Regex для "sk-" ловить ключі OpenAI, але пропускає власний внутрішній токен під назвою PROD_SECRET. Модель ловить і те, і інше.
246