Show HN: CommitGate – 自動掃描提交中的漏洞
CommitGate 是一個 AI 驅動的 Git 預提交安全門,在每次 git commit 時自動掃描暫存區差異,阻止包含密鑰、令牌或危險代碼的提交進入歷史記錄。它結合 Gitleaks 確定性掃描和 LLM 語義分析,支持 OpenAI、DeepSeek、Groq 等 AI 提供商,並可將審計日誌發送到 Splunk。
近日,開發者 Mike Ly 發佈了 CommitGate,一個由 AI 驅動的 Git 預提交安全網關工具。該工具旨在防止敏感信息或危險代碼在開發者提交時意外進入版本歷史。每當執行 git commit 時,CommitGate 會自動激活,對暫存區中的代碼差異執行兩層安全檢查:第一層使用 Gitleaks 進行確定性掃描,捕捉 API 密鑰、令牌、密碼等已知格式的秘密;第二層通過兼容 OpenAI 的 AI 模型(如 DeepSeek、Groq、Gemini 等)進行語義分析,識別正則表達式難以發現的漏洞,例如內部 URL、非標準憑據、eval 或 os.system 調用以及數據泄露邏輯。兩層掃描結果會合並去重,由決策引擎根據預設閾值給出允許、警告或阻止的決定,並在終端中生成詳細的 Rich 報告。
CommitGate 的安裝和使用非常簡單。用户需要先安裝 Python 3.10 以上版本、Git 以及 Gitleaks 二進制文件。之後通過 pip 安裝 CommitGate,在項目根目錄創建 .env 文件配置 AI 密鑰等環境變量,然後運行 commitgate init 初始化。該命令會在倉庫根目錄生成 commitgate.yaml 配置文件,並自動安裝 pre-commit 鈎子。此後每次提交都會自動觸發掃描。用户也可以通過 commitgate scan 手動執行掃描,或通過環境變量 SKIP=all 臨時繞過鈎子。
除了基本的掃描功能,CommitGate 還支持可選的 Splunk 審計日誌記錄。用户可以配置 Splunk HTTP Event Collector(HEC),每次掃描後將審計事件發送到 Splunk,從而實現可搜索的提交決策歷史。CommitGate 提供了多個 Splunk 搜索示例,用於構建安全門儀表板,例如隨時間變化的決策圖、今日阻止數、觸發類別排行等。
在數據隱私方面,CommitGate 默認啓用 AI 評審,這意味着代碼差異會被髮送到外部 AI 提供商。開發者可以根據組織政策選擇禁用 AI 評審(僅運行 Gitleaks),從而確保數據不離開本地機器。項目計劃未來支持本地 LLM(如 Ollama)和自託管 Splunk,以實現完全隔離運行。
CommitGate 採用 MIT 開源許可證,目前已在 GitHub 上獲得 6 顆星,項目倉庫包含完整的文檔、架構説明和貢獻指南。對於希望加固開發流程的團隊,CommitGate 提供了簡單而強大的預提交安全防護,幫助避免因意外泄露敏感信息而引發的安全事件。