学习如何使用 DeepReview

将 AI 代码审查集成到您工作流程所需的一切。

快速开始

5 分钟内启动并运行 DeepReview。本指南将引导您完成将 AI 代码审查集成到 GitHub 工作流程的基本步骤。

前置要求

  • 拥有至少一个仓库管理员权限的 GitHub 账户
  • DeepReview 账户(提供免费版本)

第一步:安装 GitHub App

点击下方按钮安装 DeepReview GitHub App:

安装 DeepReview App

选择您希望 DeepReview 监控的仓库。您可以选择所有仓库或特定仓库。

第二步:配置项目

在仓库根目录创建 .deepreview.yml 文件:

.deepreview.yml
# DeepReview 配置
version: "1.0"

review:
  enabled: true
  auto_review: true
  languages:
    - typescript
    - python
    - go

rules:
  security: strict
  performance: moderate
  style: relaxed

ignore:
  - "**/*.test.ts"
  - "docs/**"

第三步:创建您的第一个 PR

配置完成后,像往常一样创建 Pull Request。DeepReview 将自动:

  1. 使用 ReAct 推理引擎分析代码变更
  2. 探索相关文件和依赖以获取完整上下文
  3. 发布带有可操作建议的审查评论
  4. 生成带有严重级别的摘要报告
提示:当 DeepReview 能访问您项目的文档时效果最佳。考虑添加 docs/ 文件夹或链接您的 Wiki。

安装部署

DeepReview 提供多种安装选项以满足您团队的需求。

云端部署(推荐)

最快的入门方式。无需基础设施管理。

  1. app.deepreview.ai 注册
  2. 连接您的 GitHub/GitLab 账户
  3. 选择要监控的仓库
  4. 开始在您的 PR 上接收 AI 审查

私有化部署(企业版)

对于有严格合规要求的团队,DeepReview 可以部署在您自己的基础设施中。

Docker 部署
# 拉取 DeepReview 镜像
docker pull deepreview/server:latest

# 使用您的配置运行
docker run -d \
  --name deepreview \
  -p 8080:8080 \
  -e DATABASE_URL=postgres://... \
  -e LLM_API_KEY=your-api-key \
  -e GITHUB_APP_ID=your-app-id \
  -e GITHUB_PRIVATE_KEY=your-private-key \
  deepreview/server:latest

Kubernetes 部署

k8s-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deepreview
spec:
  replicas: 3
  selector:
    matchLabels:
      app: deepreview
  template:
    spec:
      containers:
      - name: deepreview
        image: deepreview/server:latest
        ports:
        - containerPort: 8080

配置说明

DeepReview 可以在多个级别进行配置:仓库、组织和全局。

配置文件参考

选项 类型 默认值 描述
version string "1.0" 配置模式版本
review.enabled boolean true 启用/禁用自动审查
review.auto_review boolean true PR 创建时自动审查
review.languages array ["*"] 要分析的语言
rules.security string "moderate" strict | moderate | relaxed
rules.performance string "moderate" strict | moderate | relaxed
ignore array [] 要忽略的 Glob 模式

环境变量

变量 必需 描述
LLM_API_KEY LLM 提供商的 API 密钥
LLM_MODEL 使用的模型(默认:gpt-4)
LLM_FALLBACK_MODEL 长上下文的备用模型
DATABASE_URL PostgreSQL 连接字符串
REDIS_URL Redis 任务队列

ReAct 引擎

ReAct(推理与行动)引擎是 DeepReview 智能代码审查能力的核心。与传统的静态分析器不同,ReAct 引擎能够思考、探索和迭代,直到完全理解代码变更。

工作原理

ReAct 引擎以迭代循环的方式运行,类似于人工审查员处理代码的方式:

1
思考

分析 diff 并推理需要什么上下文

2
行动

使用工具收集信息(读取文件、搜索代码)

3
观察

整合发现并决定:继续循环或生成报告

ReAct 执行示例

ReAct 执行追踪
# 思考 1
PR 修改了认证函数。我需要了解密码哈希是如何实现的。

# 行动 1
read_file("src/auth/password.ts")

# 观察 1
文件包含使用 salt rounds = 10 的 bcrypt 实现

# 思考 2
我发现了一个潜在的安全问题 - salt rounds 被硬编码了。
让我检查是否有安全设置的配置文件。

# 行动 2
search_code("salt.*rounds", "src/", "*.ts")

# 观察 2
找到:config/security.ts 定义了 SALT_ROUNDS 常量

# 思考 3
PR 应该引用配置常量而不是硬编码。
我有足够的上下文来生成审查报告了。

可用工具

AI 代理在审查过程中可以使用以下工具:

工具 描述 使用场景
read_file 读取任何文件的内容 理解完整的函数实现
search_code 在代码库中搜索模式 查找函数的所有使用位置
list_directory 探索项目结构 理解模块组织
fetch_docs 查询库文档 检查 API 正确用法
read_wiki 读取项目 Wiki 页面 理解项目约定
think 内部推理记录 复杂逻辑推理
核心优势:与仅看 diff 的工具不同,DeepReview 可以追踪函数调用、理解架构模式,并检测需要跨文件上下文的问题。

审查工作流

了解从 PR 创建到审查完成的完整流程。

同步模式 vs 异步模式

模式 适用场景 响应时间
同步模式 小型 PR(<500 行) 30-60 秒
异步模式 大型 PR,深度分析 2-10 分钟(Webhook 回调)

审查输出结构

每次审查生成多种输出:

  • 详细报告:包含所有发现的完整分析
  • 摘要:用于快速概览的执行摘要
  • 建议列表:带严重级别的可操作项
  • 行内评论:直接发布到 PR 代码行上

严重级别

级别 图标 描述
严重 🔒 安全漏洞、数据丢失风险
警告 性能问题、潜在 bug
提示 💡 代码风格、重构建议

重试与容错

DeepReview 实现了多层容错机制以确保可靠的审查。

重试策略

错误类型 策略 最大重试次数
网络超时 指数退避 3
速率限制 等待 + 重试 5
上下文过长 切换更大模型 1
模型不可用 备用模型 2

模型切换

当上下文超过主模型限制时,DeepReview 会自动切换到更大容量的模型:

模型回退链
主模型:  gpt-4 (8K 上下文)
    ↓ (如果上下文 > 8K)
备用:   gpt-4-32k (32K 上下文)
    ↓ (如果上下文 > 32K)  
扩展:   claude-3-opus (200K 上下文)

GitHub 集成

DeepReview 通过 GitHub App 提供原生的 GitHub 集成。

所需权限

  • 读取:仓库内容、元数据、Pull Request
  • 写入:Pull Request 评论、Checks

Webhook 事件

DeepReview 监听以下 GitHub 事件:

事件 操作
pull_request.opened 触发自动审查
pull_request.synchronize 新提交时重新审查
issue_comment.created 响应 @deepreview 提及

REST API

使用我们的 REST API 将 DeepReview 集成到您的自定义工作流中。

认证

HTTP 请求头
Authorization: Bearer YOUR_API_KEY

创建审查

POST /api/v1/reviews
POST /api/v1/reviews
Content-Type: application/json

{
  "repository": "owner/repo",
  "pull_request": 123,
  "base_ref": "main",
  "head_ref": "feature-branch",
  "async": true,
  "callback_url": "https://your-server/webhook"
}

响应

200 OK
{
  "review_id": "rev_abc123",
  "status": "processing",
  "created_at": "2024-01-15T10:30:00Z"
}

获取审查结果

GET /api/v1/reviews/:id
{
  "review_id": "rev_abc123",
  "status": "completed",
  "summary": "发现 3 个问题:1 个严重,2 个警告",
  "suggestions": [
    {
      "severity": "critical",
      "file": "src/auth.ts",
      "line": 42,
      "message": "SQL 注入漏洞",
      "suggestion": "使用参数化查询"
    }
  ],
  "stats": {
    "files_analyzed": 15,
    "tool_calls": 23,
    "tokens_used": 45000
  }
}