37GAMES Nova(AI-CodeReview) 介绍

项目由来
受启发于各个 AI 编码助手和 AI Code Review 方案,我们希望 37GAMES 的 AI Code Review 具备以下特性:
1). 与现有的 CI 流程紧密贴合,即 Gitlab-Runner+SonarQube;
2). 具备整个项目的上下文理解能力,支持多编程语言,并且能以较低成本实现;
3). 具备高扩展性,可以使用任意模型或 AI-Agent 平台,可以使用任意的上下文搜索方式,如 RAG 或 AST 搜索;
于是 Nova 应运而生。
Nova[/ˈnoʊ.və/],是指新星,象征着新生和亮度。结合 Code Review,我们寄望 Nova 能拥有新颖且高质量的代码审查能力。
流程介绍

如上的"Retrieve Code Context"和"Code Review"可以替换成任意实现,如果不想用 AST Symbol 搜索可以改为 RAG,不想用 Dify 也可以使用其他模型进行 Review。
代码实现以下接口即可:
复制代码
部署架构

部署非常简单,打好 Nova 镜像后,只在.gitlab-ci.yml 增加一个 job 即可,如下:
复制代码
代码安全
支持 Review 文件/Context 文件路径过滤,也支持文本内容敏感词过滤。
默认接入文本内容敏感词过滤,规则参考:

功能展示
1.支持 Didy 配置

2.融入 Gitlab-CI Pipeline


3.打通 SonarQube

4.理解项目上下文

成功找到"gschatsdk.NewSdk()"的函数定义:

还原上下文代码:

难点与展望
1.Code Review 更加精确,过滤非必要的建议,只有把 AI 审核意见做精准才能加到质量阈;
2.不同开发语言/项目支持定制审核提示语;
评论