跳转到主要内容
随着代码智能体越来越普及,瓶颈已从编写代码转移到了审阅代码。 Devin Review 是 Devin 网页应用中的全功能代码审查平台,可以将庞大而复杂的 PR 转化为结构直观的差异视图 (diff) 和精准的解释说明。它支持 GitHub,包括 GitHub Enterprise Server 和 Enterprise Cloud。
Devin Review 可用于 GitHub 仓库上的 PR,包括 GitHub Enterprise Server 和 Enterprise Cloud。公开 PR 不需要 Devin 账户。 私有 PR 可以通过 Devin 账户或通过 CLI 查看。

功能

智能 diff 组织

按逻辑对变更分组,将相关编辑组织在一起,而不是按字母顺序排列。

复制与移动检测

检测代码是否被复制或移动,并清晰展示变更,而不是显示完整删除和插入。

Bug Catcher

检查缺陷并按置信度等级标注。严重缺陷需要立刻处理。

GitHub 兼容性

在 Devin Review 中直接发表评论、批准 PR、请求更改,并与 GitHub 实时同步。

代码库感知聊天

就该 PR 提问,并基于其余代码库的相关上下文获取解答。你也可以在 diff 视图中的任何评论、缺陷或标记处直接向 Devin 提问。

PR 工作流程操作

直接在 Devin Review 中合并、关闭、转换为草稿、标记为可供审查,以及切换自动合并,无需离开当前页面。

通过聊天生成代码修改

让聊天 Agent 进行代码编辑。查看建议的代码修改,然后将其作为一次 commit 应用到 PR 分支,无需离开 Devin Review。

入门

  • Devin webapp — 前往 app.devin.ai/review,查看按类别组织的未处理拉取请求 (PR) (指派给你、你创建的、请求你评审的) 。当 Devin 创建 PR 时,你会在聊天中看到橙色的 “Review” 按钮。
  • URL 快捷方式 — 对于任何 GitHub.com PR 链接,将 URL 中的 github.com 替换为 devinreview.com。对于私有 PR,请先登录 Devin 或使用 CLI。
  • GitHub Enterprise — 将完整的 PR URL 粘贴到 app.devin.ai/review 上的 Devin Review 页面中。所有 GitHub 产品 (GitHub.com、Enterprise Server、Enterprise Cloud) 都具有相同的功能。
  • CLI — 在本地克隆的仓库中运行 npx devin-review {pr-url}。详情见下文的 CLI

支持的 Git 提供商

功能GitHubGitLabBitbucketAzure DevOps
查看差异和分析结果即将推出
Bug Catcher即将推出
代码库感知聊天即将推出
通过聊天生成代码修改即将推出
评论和评审即将推出
合并 / 关闭 / 转为草稿操作即将推出
自动合并即将推出
自动审查即将推出
GitHub 包括 GitHub.com、GitHub Enterprise Server 和 GitHub Enterprise Cloud——三者具备相同的功能。写操作功能 (评论、评审、合并操作、通过聊天生成代码修改) 需要在你的 GitHub 组织中安装并连接 GitHub App。基于 PAT 的连接为只读,无法发表评论、提交评审或执行合并操作。要设置 GitHub App,请参阅 GitHub 集成指南 GitLab 目前以预览版形式提供。请联系你的 Cognition 对接人以获取抢先体验权限。

权限

Devin Review 的访问权限由角色编辑器中 Devin Review 权限 下配置的账户级权限控制。默认情况下,所有成员和管理员都会获得完整的自动审查权限,管理员还会额外获得 管理 Devin Review 权限。 企业管理员 可以使用 自定义角色 将访问权限限制为更低的用量层级 (仅手动或仅在创建 PR 时) ,完全移除访问权限,或授予管理员能力。自动审查的自助注册不需要 管理 Devin Review 权限——任何拥有相应用量层级且已连接 GitHub 账户的用户都可以自行注册。 请参阅 账户级角色,了解 Devin Review 各权限层级的完整列表及其各自授予的权限。
**Enterprise 账户:**只有主组织中拥有 管理 Devin Review 权限的用户才能管理评审设置。非主组织中的用户可以自助注册,但无法更改管理员设置。

治理

企业管理员 可在 Devin 网页应用 中控制哪些人可以使用 Devin Review、可使用的自动化级别,以及相应的成本。
本节中的功能需要 Devin Enterprise 账户。有关企业套餐的更多 信息,请联系销售

成本控制

Devin Review 会消耗你所在企业 ACU 池中的 ACUs (Agent Compute Units) 。该资源池也用于 Devin 会话和其他 Devin 产品。企业管理员可使用多种工具来监控和控制评审成本。

用量仪表板

设置 > 用量中的企业用量仪表板会按产品细分 ACU 用量,其中每日用量图表中单独列出了一条 Review 线。组织管理员可以在设置 > 用量分析中查看其组织的 Review 用量。 该仪表板包括:
  • 按用户细分 — 查看每位用户在当前和上一计费周期消耗了多少 Review ACU。
  • 按代码仓库细分 — 查看当前和上一计费周期内各代码仓库的 Review ACU 用量、Review 次数以及发现的 bug 数量,帮助识别哪些代码仓库产生了最高的 Review 成本,以及 Review 在哪些代码仓库中发现了最多问题。
Devin Review ACU 不计入每组织 ACU 限制。设置 > 组织中配置的每组织 ACU 限制仅适用于 Devin 会话——Review 用量在企业级别进行跟踪,不受组织限制约束。即使某个组织达到其会话 ACU 限制后,Review 仍会继续运行。

审查规模指示器

Devin Review 中的每个 PR 都会显示一个用量标签,根据该 PR 上所有审查作业的 ACU 总用量,展示该次审查对应的 T 恤尺码分级:
大小ACU 范围
XS≤ 2.25 ACU
S2.25 – 4.5 ACU
M4.5 – 9 ACU
L9 – 18 ACU
XL> 18 ACU
将鼠标悬停在该大小标签上,可查看精确的 ACU 总量、已运行的审查作业数,以及当前查看的这次审查成本。这有助于审查者了解重新运行审查,或在频繁变更的 PR 上启用自动审查所带来的成本影响。

单个 PR 的自动审查支出上限

Admin 可以在 Settings > ReviewAuto-review limits 部分,为 Devin Review 在单个 PR 上的自动审查支出设置上限。在 Enterprise 套餐中,该上限以 ACU 计量;在 Individual 和 Teams 套餐中,则以按需支出的美元金额计量。将该字段留空表示不设上限 (默认) 。 一旦某个 PR 在所有审查任务中的总审查支出达到该上限,该 PR 的自动审查就会被关闭,之后的自动审查也会被跳过。达到上限属于软性限制:
  • 手动审查仍可使用 — 该上限只会暂停自动审查。你始终可以在 PR 审查页面自行触发审查。
  • 按 PR 重新启用 — 在操作菜单中 (标题栏中的三个点) 重新为该 PR 打开自动审查后,自动审查会恢复,并且该 PR 将不受此上限限制。
配置上限后,用量标签的悬浮信息卡会同时显示该 PR 的用量和上限,并标明是否已达到上限。如果已启用 PR 描述更新,PR 描述中的 Devin Review 状态行也会注明自动审查是否因支出上限而暂停,并提供重新启用的链接。

PR 工作流程操作

Devin Review 让你无需切换到 GitHub,即可直接在 Review 页面对 PR 执行操作。
  • Merge — 按仓库已配置的合并策略 (merge commit、squash 或 rebase) 合并 PR。合并按钮会显示 PR 当前是否可合并,以及必需检查的状态。
  • Close — 关闭 PR 而不合并。可在合并按钮旁边的下拉菜单中使用。
  • Convert to draft — 将打开的 PR 转为草稿状态。当 PR 处于打开状态且尚未是草稿时,可在下拉菜单中使用。
  • Mark ready for review — 将草稿 PR 标记为可供审查。对于草稿 PR,合并栏中会显示“准备好接受审查”按钮。
  • Auto-merge — 在合并按钮的下拉菜单中启用或禁用 GitHub 自动合并。启用后,PR 会在所有必需检查通过后自动合并。合并栏会显示当前的自动合并状态,包括启用人。
所有工作流程操作都需要连接 GitHub App,并且在只读模式下查看时会被禁用 (例如,未连接账户的公开仓库或基于 PAT 的连接) 。

自动审查

Devin 可以自动审查 PR,而无需你手动触发。你可以在 Settings > Review 中配置自动审查。在任意 PR Review 页面上,操作菜单 (标题栏中的三个点) 可让你为该 PR 开启或关闭自动审查,并跳转到审查设置页面。

自动审查何时运行?

自动审查会在以下情况下触发:
  • 打开非草稿 PR 时
  • 向 PR 推送新的提交时
  • 将草稿 PR 标记为“准备审查”时
  • 将已加入自动审查的用户添加为审查人 (Reviewer) 或负责人 (Assignee) 时
草稿 PR 在被标记为“准备审查”之前会被跳过。已合并和已关闭的 PR 无法被审查——一旦 PR 被合并或关闭,自动和手动审查触发都会被禁用。

触发模式

代码仓库和各个单独用户都可以配置触发模式,用于控制自动审查何时执行:
  • 自动审查 (默认) — 以下所有事件都会触发审查:PR 打开、推送新提交、草稿标记为可审查,以及添加审查者/负责人。
  • 在创建 PR 时 — 仅当 PR 首次打开,或草稿 PR 被标记为可审查时,才会触发审查。之后推送到该 PR 的提交不会触发新的审查。
  • 手动 — 不会自动执行任何审查。你可以在需要时自行从 PR 审查页面触发审查。这是个人注册的基础层级。
代码仓库触发模式仅限于 自动审查在创建 PR 时。对于只想按需触发审查的用户,个人注册还支持 手动 当一个 PR 同时匹配已注册的代码仓库和已注册的用户时,将采用最宽松的触发模式。 管理员 可以在 Settings > Review 中按代码仓库设置触发模式,而每个用户都可以在 Settings > Preferences 中设置个人触发模式。

自助注册 (所有用户)

任何已连接 GitHub 账户的用户都可以为自己开启自动审查——不需要管理员权限。
  1. 前往 Settings > Preferences
  2. Devin Review 下,将你的 Review trigger 设为 在创建 PR 时自动审查 (如果你只想自行触发审查,请保持为 手动)
使用 自动审查 完成注册后,Devin 会在任意仓库中自动审查你创建的 PR (拉取请求) 、你被添加为审查者的 PR,或指派给你的任何 PR。使用 在创建 PR 时 时,Devin 仅会在 PR 首次创建或被标记为 可供审查 时进行审查。 你也可以在特定 PR 的 Review 页面中,通过操作菜单 (标头中的三个点) 为其开启或关闭自动审查;该菜单还链接到你的个人审查设置。

管理员配置

管理员在 Settings > Review 中有更多选项:
  • Repositories — 将代码仓库添加到自动审查列表,以自动审查该仓库中的所有 PR。使用 Add repo 按钮从已连接的代码仓库中搜索并选择,并从列表中为每个代码仓库设置触发模式。
  • Users — 查看整个组织中所有已加入的用户及每位用户的触发模式。用户通过自助注册自行加入;管理员不能直接为其他用户注册。
  • 在 PR 描述中添加 “Devin Review” 链接 — 启用时 (默认) ,Devin 会在 PR 描述中添加指向此次审查的链接。

发布到 GitHub

管理员可以在 Settings > Review作为 PR 评论发布 部分中配置 Devin Review 要回传到 GitHub 的内容:
  • 发布 GitHub CI 检查 — 启用时 (默认) ,Devin 会为每次审查在 PR 上创建一个 commit 状态检查。这样你就可以在 PR 的检查列表中直接查看审查结果。
  • Bugs — 将 bug (可能的错误或异常行为) 作为 PR 评论发布。
  • Flags (investigate) — 将 investigate 标记 (值得进一步仔细检查的潜在问题) 作为 PR 评论发布。
  • Flags (note) — 将信息类标记 (可能无需采取行动的观察项) 作为 PR 评论发布。
默认情况下,bug 和 “investigate” 标记会作为 PR 评论发布。管理员可以分别切换每种发现类型。
企业 账户: 设置会应用于企业中所有组织。只有主组织中具有企业管理员 权限的用户可以管理这些设置。非主组织中的用户只能自行开通自动审查。
自动审查不适用于未连接到你组织的公共代码仓库。

Bug Catcher

Bug Catcher 会自动分析你的 PR (pull request 合并请求) ,查找潜在问题,并在 Analysis 侧边栏中展示结果。结果分为两类:BugsFlags

Bugs

Bug 是指应在代码中修复的可处理错误。它们表示 Bug Catcher 高度确信为实际存在的问题。 Bug 会以两种严重程度显示:
  • 严重 — 置信度高, 需要立即处理的问题
  • 一般 — 严重程度较低,但仍应进行审查的问题
当你看到 bug 时,应对其进行排查并在代码中修复。

标记

标记是供参考的代码注释,可能需要也可能不需要采取行动。它们分为两类:
  • Investigate (需排查) — 需要进一步排查的标记。你应当自行审查被标记的代码,并确认是否存在实际的 bug 或问题。
  • Informational (仅供参考) — Bug Catcher 要么已确认其是正确的,要么是在解释某段逻辑的工作方式。 这些标记帮助你理解代码变更,而无需你采取任何行动。

解决发现项

当你修复了问题或确认它们无需处理时,就可以将 bug 和标记设为已解决。已解决的项会在侧边栏中以灰显方式显示,并在各自所属部分的列表底部排列。

评审操作

开始 Review

在创建新的行内评论或回复现有讨论线程时,你可以勾选 Start a review 复选框,将评论汇总到一个待提交的 Review 中,而不是逐条单独发布。这与 GitHub 的 Review 工作流相同,让你可以在提交前先收集好全部反馈。一旦某次 Review 已经开始,后续的评论会自动加入其中,该复选框也会被隐藏。

解决评论

你可以将评审线程标记为已解决,以表明它们已经被处理。当某个由机器人提交的评审中的所有线程都被解决后,Devin 会在 GitHub 上自动将该评审折叠,以保持 PR 对话简洁。如果某个线程之后被重新标记为未解决,则该评审会自动恢复为展开状态。 在 diff 视图中,你可以使用尖角图标开关展开或折叠单个评论线程,以便聚焦于尚未解决的反馈。

代码所有者指示器

当某位代码所有者被指定为审阅者时,Devin Review 会在审阅者侧边栏中其姓名旁显示一个盾牌图标,并带有“已作为代码所有者被请求”的工具提示。这样可以轻松识别待审核的审阅者中哪些对已更改的文件拥有代码所有权。

自动修复

Devin Review 可以针对它在你的 PR 中检测到的缺陷自动提出修复建议并应用修复。启用自动修复后,Devin 会在报告缺陷的同时直接给出相应的代码修改建议。

如何启用

有两种方式可以启用 自动修复:
  1. 通过审查侧边栏 — 在任意由 Devin 提交的 PR 中,Analysis 侧边栏会显示一个 Auto-fix 部分,其中包含一个 Enable auto-fix 按钮。点击该按钮会为你的组织中的所有 Devin PR 启用 自动修复。这需要组织 Admin 权限。
  2. 通过全局自定义设置 — 前往 Settings > Customization > Pull requests > Responding to bots,然后执行以下任一操作:
    • 将模式设置为 Selected only,并将 devin-ai-integration[bot] 添加到允许列表,或
    • 将模式设置为 All bots
当 Devin Review 发现缺陷且已启用 自动修复 时,它会生成修复建议,你可以直接在 diff 视图中审查并应用这些修复。

权限与限制

  • 只有组织管理员可以更改此设置。
  • 如果 bot 模式设置为 All bots,自动修复 会显示为已启用,且无法在审查侧边栏中更改。请使用 Customization 设置来修改 bot 模式。
  • Devin Review 的 No Issues Found 汇总评论始终会被忽略。只有包含实际问题的评论才会触发 自动修复。
如果当前在你的代码库中,Devin Review 的反馈被设置为忽略,你会在会话时间线上看到启用它的提示。

CLI

Devin Review CLI 允许你直接在终端中运行代码审查。对于私有代码库,或当你希望使用更简化的本地工作流时,它尤其有用。

安装和使用

在本地克隆的仓库中运行 CLI,无需身份验证:
cd path/to/repo
npx devin-review https://github.com/owner/repo/pull/123
你必须在正在审核的代码仓库内运行此命令。 工作原理:
  1. 基于 Git 的 diff 提取 — CLI 使用你本地的 Git 访问权限获取 PR 分支并计算 diff。这意味着你需要在本机上对该代码仓库具有读取权限。
  2. 隔离的 worktree 检出 — CLI 会在一个缓存目录中创建一个 git worktree 来检出 PR 分支。这样可以保持你的工作目录不受影响 —— 无需暂存 (stash) 、无需切换分支。审核完成后,该 worktree 会自动清理。
  3. 将 diff 发送到 Devin 服务器 — 计算出的 diff 和文件内容会被发送到 Devin 的服务器进行分析。

隐私与访问控制

CLI 使用 localhost 本地服务器 为你的评审会话进行身份验证:
  • 默认仅限本地访问 — 当你运行 devin-review 时,它会在你的机器上启动一个 localhost 服务器,用于提供安全令牌。只有你本地机器上的进程可以访问该令牌,这意味着在未登录的情况下,只有你可以查看评审页面
  • 转移到你的 Devin 账户 — 如果你登录了一个对该 GitHub 组织有访问权限的 Devin 账户,评审会话会被转移到你的账户下。这样你就可以从其他设备访问评审,并与团队成员共享。
当你运行 CLI 时,devin-review 可以在你的本地机器上执行命令,以收集更多用于查找 bug 的上下文信息。这比仅基于 diff 的评审能进行更深入的分析。 Bug Catcher 只能执行一组受限的、作用范围限定在 worktree 目录内的 只读 操作:
  • 文件读取 — 读取代码仓库中的文件内容
  • 搜索 — 使用 grep 搜索模式、使用 glob 匹配文件名
  • Bash 命令 — 仅限只读命令,如 lscatpwdfileheadtailwcfindtreestatdu

提交与评论归属

  • Bug 发现、标记和自动注释始终以 Devin bot 的身份出现。
  • 当用户通过 Devin Review 编写评论或评审时,这些内容会显示为该用户的 GitHub 身份。
  • 当用户让聊天代理进行代码修改时,由此产生的提交会以 Devin bot 的身份创建。
  • GitHub Suggested Changes 遵循 GitHub 的标准行为:任何评审者 (包括 Devin) 都可以在评审评论中留下建议修改。当用户点击“Apply suggestion”时,提交的作者为该用户,与 GitHub 中的行为一致。
  • Devin 绝不会在用户未明确发起操作的情况下,代表用户创建提交或评论。

AGENTS.md / 指令文件

Devin Review 会遵循代码仓库中的指令文件。如果这些文件中的任意一个存在,它们都会在分析你的 PR 时作为上下文使用:
  • **/REVIEW.md
  • **/AGENTS.md
  • **/CLAUDE.md (不区分大小写)
  • **/CONTRIBUTING.md (不区分大小写)
  • .cursorrules
  • .windsurfrules
  • .cursor/rules
  • *.rules
  • *.mdc
  • .coderabbit.yaml / .coderabbit.yml
  • greptile.json
位于类似 Agent 的子目录 (.agents/.devin/.cursor/.github/) 中的文件在确定作用域时会被视为属于其父目录。例如,src/.agents/REVIEW.md 适用于 src/ 下的文件。 这些文件可以包含编码规范、项目约定或其他指南,从而帮助提供更有针对性的反馈。

自定义 Review 规则

你可以在 Settings > Review 页面的 Review Rules 部分配置额外的文件,作为评审上下文供 Devin 使用。这样可以在上述默认规则之外,添加自定义的文件 glob 模式。 要添加自定义规则:
  1. 前往 Settings > Review
  2. Review Rules 下输入一个文件 glob 模式 (例如 docs/**/*.md)
  3. 点击 Add
自定义规则会与默认的 **/REVIEW.md 规则一起显示在列表中。你可以点击其旁边的垃圾桶图标来移除任意自定义规则。 当你的项目中与评审相关的文档位于非标准位置时 (例如架构决策记录、风格指南,或存放在自定义路径中的团队特定约定) ,这会非常有用。

REVIEW.md

REVIEW.md 是专门为 Devin Review 准备的说明文档。将它放在代码仓库中的任意位置,即可自定义 Devin 在你的项目中审查 PR (拉取请求) 的方式。Devin 会在任意目录层级 (**/REVIEW.md) 自动查找 REVIEW.md 文件,因此如有需要,你可以将审查规范限定到特定子目录。 使用 REVIEW.md 来定义与代码审查相关的专项规范,例如:
  • 代码库中需要额外严格审查的区域
  • 需要留意的常见陷阱或反模式
  • 审查者应当强制执行的项目特定约定
  • 在审查期间可以安全忽略的文件或目录
  • 你项目特有的安全或性能方面的注意事项
示例 REVIEW.md
# Review Guidelines

## Critical Areas
- All changes to `src/auth/` must be reviewed for security implications.
- Database migration files should be checked for backward compatibility.

## Conventions
- API endpoints must include input validation and proper error handling.
- All public functions require TypeScript return types — do not use `any`.
- React components should use functional components with hooks, not class components.

## Ignore
- Auto-generated files in `src/generated/` do not need review.
- Lock files (package-lock.json, yarn.lock) can be skipped unless dependencies changed.

## Performance
- Flag any database queries inside loops.
- Watch for N+1 query patterns in API resolvers.