Tôi đã xây dựng một hook git pre-push sử dụng LLM để quét các sự khác biệt của bạn tìm kiếm bí mật trước khi chúng rời khỏi máy của bạn. Dưới đây là cách nó hoạt động 🧵
Khi bạn chạy git push, hook sẽ được kích hoạt trước tiên. Nó xác định những gì là mới - hoặc tất cả các commit trên một nhánh mới, hoặc chỉ các commit mới trên một nhánh hiện có - và tạo ra một git diff chính xác về những gì sắp được gửi đi.
Sự khác biệt đó được gửi đến Kimi CLI với một lời nhắc được giới hạn chặt chẽ. Mô hình được chỉ định phản hồi với ĐÚNG MỘT trong hai chuỗi: SAFE_TO_PUSH hoặc BLOCK_PUSH.
Nó quét tìm những đối tượng khả nghi thông thường: - Khóa API (OpenAI, Anthropic, AWS…) - Mật khẩu & mã thông báo xác thực - Khóa riêng (SSH, SSL, bí mật JWT) - Chuỗi kết nối DB với thông tin xác thực - Các tệp .env đã lén lút vào một cam kết
Nếu nó trở lại BLOCK_PUSH, hook sẽ thoát với mã 1 — việc đẩy bị từ chối, và bạn sẽ thấy chính xác những dòng nào đã kích hoạt nó, cộng với một mức độ nghiêm trọng. Sửa nó, sau đó đẩy lại.
Điều hay khi sử dụng một LLM ở đây thay vì các mẫu regex: nó hiểu ngữ cảnh. Một regex cho "sk-" bắt được các khóa OpenAI nhưng bỏ lỡ một mã nội bộ tùy chỉnh có tên là PROD_SECRET. Mô hình bắt cả hai.
203