AI驅動的代碼審查工具ReviewCerberus
ReviewCerberus是一款開源的AI代碼審查工具,支持GitHub Actions自動化PR審查,兼容AWS Bedrock、Anthropic、Ollama和Moonshot等多種AI模型提供商。它提供結構化的審查報告,涵蓋邏輯、安全、性能和代碼質量等方面,並具備實驗性的驗證模式和SAST集成功能。
ReviewCerberus 是一款開源的人工智能代碼審查工具,旨在通過分析 Git 分支差異來生成全面的審查報告。該項目由 Kirill89 開發,採用 MIT 許可證,主要使用 Python 和 TypeScript 編寫。
該工具的核心功能包括自動化的 PR 審查,通過 GitHub Actions 集成,可以在拉取請求打開或同步時自動觸發。它支持多種 AI 模型提供商,如 AWS Bedrock、Anthropic API、Ollama 和 Moonshot,用户可以根據自身需求選擇。審查範圍涵蓋邏輯正確性、安全性、性能、代碼質量、副作用、測試覆蓋率和文檔完整性等多個方面。
ReviewCerberus 的輸出採用結構化格式,包含一個高層次的摘要、問題表格(按嚴重程度分為關鍵、高、中、低)以及每個問題的詳細説明、位置和修復建議。此外,該工具還提供了一些實驗性功能,例如通過 Chain-of-Verification 機制減少誤報,以及集成 OpenGrep(Semgrep 的分支)進行靜態應用安全測試(SAST)預掃描。
用户可以通過 Docker 或 Poetry 本地運行 ReviewCerberus,也可以作為 GitHub Action 使用。配置主要通過環境變量進行,包括模型提供商的選擇和相應的 API 密鑰。項目還提供了豐富的命令行選項,如指定目標分支、輸出格式(Markdown 或 JSON)、自定義審查指南、啓用驗證模式和 SAST 掃描等。
ReviewCerberus 的工作流程是:檢測當前 Git 分支和倉庫,收集所有上下文(包括更改的文件、提交信息和差異),然後利用 AI 代理進行分析。代理可以讀取文件內容、搜索代碼模式、列出目錄等,最終生成結構化的審查報告。對於大型 PR,它還支持上下文壓縮以提高效率。
在開發方面,項目強調代碼質量,要求嚴格的類型註釋、明確的返回類型,並使用 Black 和 isort 進行格式化。測試包括單元測試和集成測試,後者通過 act 工具模擬 GitHub Actions 環境。
總體而言,ReviewCerberus 為開發團隊提供了一種靈活、可擴展的代碼審查解決方案,結合了 AI 的智能分析和傳統靜態分析工具的精確性。