austinyuch/aclab-code-review

GitHub: austinyuch/aclab-code-review

一套基于知识图谱与多语言 AST 解析的自动化代码审查系统,支持离线确定性规则检测并兼顾人类可视化与 AI 代理两种消费方式。

Stars: 1 | Forks: 0

# 代码审查系统 一个自动化的、感知图谱的代码审查与代码智能系统。它构建代码库的多层知识图谱,运行确定性的多语言静态审查引擎,并将结果提供给人类(Web 可视化 UI)和 AI 代理(MCP 工具接口)。 采用 [Apache License 2.0](LICENSE) 授权。 ## 组件 | 组件 | 路径 | 技术栈 | |-----------|------|-------| | 审查服务与 CLI | `go-review-service/` | Go 1.26+ | | 可视化前端 | `code-visualization-frontend/` | React 19 + TypeScript + Vite | | Schema(契约) | `contract/` | JSON Schema | ## 核心亮点 - **多层代码图谱** — 增量索引器构建 file → package → symbol → relation → capability 层,支持可插拔的图谱后端。 - **确定性审查引擎** — 跨五种语言的基于 AST 的规则:Go(`go/ast`)、Python / TypeScript / C#(tree-sitter),以及 **Dynamics AX / X++**(原生 AX 2009 `.xpo` 方法体 AST),用于发现正确性、可维护性和测试质量方面的问题。无需 LLM 提供商。 - **一流的 Dynamics AX / X++ 支持** — 一个独立、无依赖的 `xppast` 库将 AX 2009 `.xpo` 源码解析为真正的方法体 AST,从而驱动支持 X++ 的审查规则(以 `real` 类型表示的货币、不平衡的 `tts` 块、过长/过复杂的方法)以及代码图谱中的 X++ 对象关系。纯 Go 实现且无构建标签,因此可在包括 macOS 在内的所有平台上运行。 - **语义搜索** — 通过 embedding 提供商进行可选的向量搜索,包括完全**本地**的 ONNX embedding 模型(无需云提供商 / API 密钥),可通过 `sh install/install.sh` 获取。 - **MCP 服务器** — 通过 stdio 和 HTTP 暴露审查/图谱工具,以便 AI 代理和 IDE 能够以编程方式驱动分析。 - **图谱与报告查看器** — 基于浏览器的代码图谱可视化。 ## 快速开始 ### 预编译二进制文件 + 模型(安装时下载) 不想从源码构建?预编译的 `review-cli` 二进制文件和 ONNX embedding 模型已作为 GitHub Release 资产发布,并支持按需获取: ``` sh install/install.sh ``` 此操作将下载并进行 SHA-256 验证,但**仅限当前主机的** `review-cli` 二进制文件(依据已提交的 `install/review-cli-bundle-manifest.json` 进行校验),以及 ONNX embedding 模型(一个经过校验和验证的 `.zip` 文件,解压至 `install/assets/models/`)。 该安装过程是幂等的;设置 `REVIEW_CLI_SKIP_ONNX=1` 可仅获取二进制文件。 成功后,它将打印出 `CODE_REVIEW_EMBEDDING_ONNX_*` 环境变量,这些变量可在无需云 embedding 提供商或 API 密钥的情况下启用**本地**语义搜索。使用 `REVIEW_CLI_RELEASE`(一个 `https://` 基础 URL、一个 `gh://OWNER/REPO@TAG`,或本地镜像目录)可覆盖 Release 源。 ### 后端 (Go) ``` cd go-review-service go build ./... go test ./... -tags no_tree_sitter # unit tests, no external services # 构建 CLI 并审查路径 go build -o bin/review-cli ./cmd/review-cli ./bin/review-cli review --format text # 审查 Dynamics AX / X++ 源代码(原生 .xpo AST 规则,确定性,离线) ./bin/review-cli review --language xpp --format text # 索引项目图(项目本地 SQLite,无外部服务) PERSISTENCE_MODE=local-sqlite SQLITE_ENABLED=true ./bin/review-cli index --no-embeddings ``` 将 `config.example.yaml` 复制为 `config.yaml`,并根据您的环境调整提供商/endpoint。配置由环境变量驱动;有关提供商选项,请参阅示例配置和 `docs/`。 ### 前端 (React) ``` cd code-visualization-frontend npm install npm run dev # local dev server npm run build # production build ``` ## 文档 请参阅 [`docs/`](docs/) 获取用户手册、版本控制策略、提供商/支持矩阵、LSP 集成、可观测性以及图谱后端集成指南。 ## 贡献 欢迎贡献。请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 和[行为准则](CODE_OF_CONDUCT.md)。如需报告安全问题,请参阅 [SECURITY.md](SECURITY.md)。 ## 许可证 Apache License 2.0 — 详见 [LICENSE](LICENSE) 和 [NOTICE](NOTICE)。
标签:CNCF毕业项目, EVTX分析, Go, MCP, React, Ruby工具, Syscalls, 云安全监控, 代码审查, 日志审计, 静态分析