Code Review Bench
收藏资源简介:
开源基准测试用于评估AI代码审查工具,包括数据集、评判标准和管道代码。离线基准测试包含来自5个主要开源项目的50个PRs,每个PR都带有经过人工验证的金色评论,即审查者应发现的真正问题。在线基准测试持续从GitHub中采样新鲜的真实世界PRs,其中代码审查机器人留下了评论,确保工具无法在训练过程中记住这些PRs。
An open-source benchmark for evaluating AI code review tools, encompassing datasets, evaluation criteria, and pipeline code. The offline benchmark includes 50 Pull Requests (PRs) from 5 major open-source projects, with each PR paired with manually verified golden comments, i.e., the genuine issues that reviewers should identify. The online benchmark continuously samples fresh real-world PRs from GitHub, where code review bots have left comments, to ensure that the tools cannot memorize these PRs during training.
Code Review Bench 数据集概述
数据集简介
Code Review Bench 是一个用于评估 AI 代码审查工具的开源基准测试,包含数据集、评估判断器(Judge)和流水线代码。其旨在解决 AI 代码审查工具缺乏共享评估标准的问题,提供可复现的结果和公平的比较。
基准测试构成
该基准测试包含两个部分:离线基准测试和在线基准测试。
离线基准测试
- 性质:固定数据集,结果可复现。
- 数据集内容:包含来自 5 个主要开源项目的 50 个拉取请求(PR)。
- 数据标注:每个 PR 都附有人工验证的“黄金评论”,即审查者应发现的真实问题,并标注了严重性等级(低/中/高/关键)。
- 评估方法:使用 LLM 作为判断器,将工具的审查结果与黄金评论进行匹配,计算精确率和召回率。
- 已评估工具:包括 Augment, Claude Code, CodeRabbit, Codex, Cursor Bugbot, Gemini, GitHub Copilot, Graphite, Greptile, Propel, Qodo 等。
离线基准测试项目来源
| 仓库 | 语言 | 领域 |
|---|---|---|
| Sentry | Python | 错误追踪 |
| Grafana | Go | 可观测性 |
| Cal.com | TypeScript | 日程安排 |
| Discourse | Ruby | 论坛平台 |
| Keycloak | Java | 身份验证 |
在线基准测试
- 性质:持续更新,无训练数据泄露风险。
- 数据来源:持续从 GitHub 采样最新的真实世界 PR,这些 PR 中包含了代码审查机器人的评论。
- 分析流程:
- 提取机器人建议:LLM 读取代码差异和机器人评论,提取可操作的建议及其类别(错误、安全、性能、风格等)和严重性。
- 提取人类操作:LLM 读取审查后的提交,识别开发者在机器人评论后实际修复了哪些问题。
- 判断匹配:LLM 确定哪些机器人建议与实际修复相对应,从而计算每个 PR 的精确率(机器人的评论有多少是有用的?)和召回率(机器人发现了多少真实问题?)。
- 追踪的机器人:CodeRabbit, GitHub Copilot, Claude, Cursor, Augment, Codex, Gemini, Greptile, Graphite, Qodo, Propel 等。
LLM 判断器工作原理
两个基准测试均采用 LLM 作为判断器,但方法论不同:
| 方面 | 离线基准测试 | 在线基准测试 |
|---|---|---|
| 事实依据 | 人工整理的黄金评论 | 开发者审查后的修复 |
| 精确率 | 匹配黄金评论的工具评论数 / 工具评论总数 | 匹配到真实修复的机器人建议数 / 建议总数 |
| 召回率 | 工具发现的黄金评论数 / 黄金评论总数 | 机器人捕获的真实修复数 / 总修复数 |
| 判断器输入 | 黄金评论 + 工具候选评论 | 完整的 PR 时间线:代码差异、机器人评论、审查后提交 |
判断器提示的核心问题是“这些是否描述了相同的根本问题?”,只关注实质内容,允许措辞差异。 已使用的判断器模型包括 Claude Opus 4.5, Claude Sonnet 4.5 和 GPT-5.2。
仓库结构
主要目录结构如下:
offline/:离线基准测试(固定数据集)golden_comments/:每个仓库的人工整理问题(5个JSON文件)code_review_benchmark/:流水线(复刻、下载、提取、判断、导出)analysis/:交互式 HTML 仪表板tests/:测试套件results/:评估输出(按判断器模型)
online/:在线基准测试(持续)etl/:Python 流水线pipeline/:发现 → 丰富 → 组装 → 分析 → 标注llm/:提示词、模式、异步客户端db/:数据库层(SQLite + PostgreSQL)jobs/:后台工作程序dashboard/:Streamlit 仪表板
api_service/:Rust API + 嵌入式 HTML 仪表板
快速开始
离线基准测试
- 进入
offline目录,使用uv同步环境。 - 复制
.env.example为.env并添加 GitHub Token 和 LLM API 密钥。 - 按顺序运行流水线脚本:下载 PR 数据、提取评论、运行 LLM 判断器。
- 在
analysis/benchmark_dashboard.html中查看结果。
在线基准测试
- 进入
online/etl目录,使用uv同步环境。 - 复制
.env.example为.env并添加 GitHub Token、GCP 项目信息和 LLM API 密钥。 - 按顺序运行流水线命令:发现近期 PR、通过 GitHub API 丰富数据、运行 LLM 分析。
- 启动仪表板查看结果。
添加新工具(离线基准测试)
- 将 50 个基准测试 PR 复刻到已安装目标工具的 GitHub 组织中。
- 让工具审查每个 PR。
- 将工具名称添加到下载配置中并运行流水线。
- 结果将出现在仪表板中,与现有工具并列。
引用
若在研究或产品评估中使用此基准测试,请引用: bibtex @misc{code_review_benchmark, title = {Code Review Bench}, author = {Aleksandr Zverianskii, Jacob Clyne, Antía Garcia, Fazl Barez, Shriyash Upadhyay}, url = {https://github.com/withmartian/code-review-benchmark}, year = {2026}, license = {MIT} }
许可证
MIT 许可证。



