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 提供了簡單而強大的預提交安全防護,幫助避免因意外洩露敏感資訊而引發的安全事件。