Я создал git pre-push хук, который использует LLM для сканирования ваших изменений на наличие секретов, прежде чем они покинут ваш компьютер. Вот как это работает 🧵
Когда вы выполняете git push, сначала срабатывает хуки. Он определяет, что нового — либо все коммиты на новой ветке, либо только новые коммиты на существующей — и генерирует git diff того, что именно собирается отправить.
Этот дифф отправляется в Kimi CLI с строго ограниченным запросом. Модели дается указание ответить ТОЛЬКО одной из двух строк: SAFE_TO_PUSH или BLOCK_PUSH.
Он сканирует на наличие обычных подозреваемых: - API ключи (OpenAI, Anthropic, AWS…) - Пароли и токены аутентификации - Приватные ключи (SSH, SSL, секреты JWT) - Строки подключения к БД с учетными данными - .env файлы, которые попали в коммит
Если вернется BLOCK_PUSH, хук завершает работу с кодом 1 — пуш отклонен, и вы видите, какие именно строки его вызвали, а также уровень серьезности. Исправьте это, а затем снова выполните пуш.
Хорошо использовать LLM здесь вместо регулярных выражений: он понимает контекст. Регулярное выражение для "sk-" ловит ключи OpenAI, но пропускает пользовательский внутренний токен с именем PROD_SECRET. Модель ловит оба.
245