综合介绍
CR-Mentor 是一个结合专业知识库与大语言模型(LLM)能力的智能代码审查工具。它不仅支持所有编程语言的代码审查,还能基于知识库积累的最佳实践,为团队定制专属审查标准和重点关注领域。通过持续积累知识库和深度学习,CR-Mentor 能有效提升团队代码质量,显著降低审查时间和错误率。
功能列表
- 全语言代码审查:支持所有主流编程语言的代码审查。
- 定制审查标准:基于知识库的最佳实践,为团队定制专属审查标准。
- 智能单文件审查:结合知识库经验与 LLM 分析,对单文件代码变更提供专业评分和改进建议。
- 全局代码分析:基于所有文件代码变更,通过 LLM 提供综合审查报告,包括代码演练、变更说明和时序图。
- GitHub 深度集成:无缝对接 GitHub 工作流,实现自动化代码审查。
- 多语言响应:支持自定义代码审查反馈的语言。
使用帮助
安装流程
- 注册和登录:创建一个 CR-Mentor 账号并登录。
- 安装 CR-Mentor:将 CR-Mentor 添加到你的 GitHub 仓库。
- 创建 Pull Request:在你的公共仓库中提交一个 PR 进行代码审查。
使用流程
- 提交代码:将代码提交到 GitHub 仓库。
- 自动审查:CR-Mentor 会自动分析代码,生成详细的代码审查报告。
- 查看报告:报告包括代码演练、变更说明和时序图,帮助开发者理解代码变更的影响。
- 优化建议:根据报告中的建议,优化代码,提高代码质量和性能。
详细操作步骤
- 注册和登录:访问 CR-Mentor 网站,点击“注册”按钮,填写必要信息完成注册。注册后,使用注册的账号和密码登录。
- 安装 CR-Mentor:登录后,进入“安装指南”页面,按照步骤将 CR-Mentor 添加到你的 GitHub 仓库。具体步骤包括:
- 在 GitHub 上创建一个新的仓库或选择一个现有的仓库。
- 在仓库设置中,添加 CR-Mentor 的 GitHub App。
- 配置 Webhook URL 和其他必要信息。
- 创建 Pull Request:在你的 GitHub 仓库中,创建一个新的分支并进行代码更改。提交更改后,创建一个 Pull Request,CR-Mentor 会自动开始代码审查。
- 查看审查报告:CR-Mentor 会生成详细的代码审查报告,报告包括代码演练、变更说明和时序图。开发者可以在 GitHub 的 Pull Request 页面查看报告。
- 优化代码:根据审查报告中的建议,优化代码。CR-Mentor 的建议基于知识库的最佳实践和 LLM 的分析,帮助开发者提高代码质量和性能。
注意事项
- 定制审查标准:在 CR-Mentor 的设置页面,可以根据项目需求定制代码审查标准。定制标准可以确保代码符合团队的最佳实践。
- 多语言支持:CR-Mentor 支持多种编程语言的代码审查,开发者可以在设置页面选择需要审查的语言。
- 报告导出:审查报告可以导出为 PDF、HTML 和 Markdown 格式,方便分享和归档。
技术栈
- 🔥 使用 Next.js App Router 构建现代化 Web 应用
- 🎨 使用 Tailwind CSS 实现优雅的响应式设计
- 🔐 使用 Clerk 提供安全可靠的用户认证
- 📦 使用 Supabase 实现高性能数据存储
- 🔗 使用 Github App 实现 GitHub 深度集成
- 🧠 使用 Dify 构建智能 LLM 工作流
部署指南
你可以通过设置以下服务并添加相应的环境变量来部署此模板:
- 运行
npm install
安装依赖,然后运行npm run dev
启动开发服务器。 - 系统会要求你提供
CLERK_SECRET_KEY
。具体步骤如下: - 现在你的前端和后端应该已经运行,你可以登录但还不能进行代码审查。
- 创建一个 Supabase 账号来获取 API key。
- 创建一个 Supabase 项目,在
Project Settings
中复制:SUPABASE_URL
SUPABASE_KEY
执行以下 SQL 语句创建
githubId_clerkId
表:CREATE TABLE "public"."githubId_clerkId" ( "github_id" text NOT NULL, "clerk_id" text NOT NULL, PRIMARY KEY ("github_id") );
执行以下 SQL 语句创建
repoName_file
表:CREATE TABLE "public"."repoName_file" ( "repo_fullName" text NOT NULL, "file_name" text NOT NULL, "folder_name" text NOT NULL, PRIMARY KEY ("repo_fullName", "file_name", "folder_name") );
- 在
Storage
的S3 Connection
中复制:SUPABASE_S3_ENDPOINT
SUPABASE_S3_REGION
- 在
Storage
的S3 Access Keys
中新建:SUPABASE_STORE_ID
SUPABASE_STORE_SECRET_KEY
- 在
Storage
中使用New bucket
新建 Bucket:- 将 Bucket 名称填入
SUPABASE_BUCKET_NAME
- 将 Bucket 名称填入
SUPABASE_URL= SUPABASE_KEY= SUPABASE_S3_ENDPOINT= SUPABASE_S3_REGION= SUPABASE_STORE_ID= SUPABASE_STORE_SECRET_KEY= SUPABASE_BUCKET_NAME=
- 创建一个 Supabase 项目,在
- 创建一个 Github 账号,然后创建一个 Github App。
- 在
Settings
->Developer settings
->GitHub Apps
中点击New GitHub App
。 - 填写
GitHub App name
、Homepage URL
、Webhook URL
等信息。 - 生成
Private key
并下载,复制App ID
、Client ID
、Client secret
到.env.local
文件中。
GITHUB_APP_ID= GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= # 只填写 -----BEGIN RSA PRIVATE KEY----- 和 -----END RSA PRIVATE KEY----- 之间的内容 GITHUB_PRIVATE_KEY=
- 在
- 创建一个 Dify 账号并配置 LLM 工作流:
- 注册 Dify 账号并在模型供应商处配置 LLM 模型
- 在 Dify 工作室 导入工作流:
- 点击「创建应用」选择「导入 DSL」
- 切换到 URL 模式,填入工作流文件的 URL:
https://ovlxxbdwimhigoejxkqn.supabase.co/storage/v1/object/public/test-bucket-api/Dify_DSL/CR-Mentor.yml
- 点击创建完成导入
- 发布工作流:
- 在「编排」页面点击「发布」按钮
- 获取 API Key:
- 在左侧导航栏点击「API Access」
- 切换到「Workflow App API」页面
- 点击右上角「API Key」新建 Secret key
- 复制 Secret key 到
.env.local
文件:
DIFY_APIKEY= DIFY_BASE_URL=https://api.dify.ai/v1 # 固定值