关于 coderabbit
用于分析 GitHub 拉取请求中的 CodeRabbit 反馈,或对本地差异运行 CodeRabbit CLI 审查。它帮助开发者获取评论并分类问题,整理修复计划。
主要功能
- 01获取 PR 审查评论
- 02分析行内及摘要反馈
- 03运行本地 CLI 审查
- 04分类问题并规划修复
适用场景
- 01整理 PR 中的 CodeRabbit 反馈
- 02提交 PR 前审查本地改动
- 03将审查发现整理为修复计划
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ paulrberg/ agent-skills --skill coderabbit安装后在 Claude Code 中输入/coderabbit确认已加载。
附带文件references/local-review.mdreferences/triage.md
详细介绍
CodeRabbit 审查问题分类
获取并分析 GitHub PR 中的 CodeRabbit 审查评论,或运行本地 CodeRabbit CLI 审查。默认模式从远程 PR 获取评论。使用 --local 针对本地差异运行 CLI。
参数
解析 $ARGUMENTS,查找:
<pr-number>— 整数 PR 编号<pr-url>— GitHub PR URL(例如:https://github.com/owner/repo/pull/123),从路径中提取 PR 编号--local— 切换到本地审查模式(见下文)
模式分发
如果 $ARGUMENTS 包含 --local,则移除该标记,并将剩余参数转发给 references/local-review.md。按照该工作流执行,不要继续以下内容。--local 之后的所有标志(--base、--base-commit、--type、--config)都会转发给本地工作流。
否则,继续执行以下 PR 评论分析工作流。
前置条件
按顺序运行以下检查。首次失败时停止。
1) 验证 GitHub CLI 身份
gh auth status
如果尚未通过身份验证,停止并告知用户运行 gh auth login。
2) 检测仓库
gh repo view --json owner,name --jq '"\(.owner.login)/\(.name)"'
将结果保存为 {owner}/{repo}。
3) 确定 PR 编号
- 如果参数中提供了 PR 编号,则直接使用。
- 如果提供了 PR URL,则从 URL 路径中提取编号。
- 如果两者都未提供,则从当前分支自动检测:
gh pr view --json number --jq '.number' 2>/dev/null
如果自动检测失败,则停止并提示:“未找到当前分支对应的开放 PR。请提供 PR 编号或 URL,或使用 --local 进行本地审查。”
4) 验证 PR
gh pr view {pr_number} --json state,url --jq '"\(.state) \(.url)"'
如果命令失败,则表示 PR 不存在。报告并停止。否则,记录其状态(OPEN/MERGED/CLOSED)和 URL,供报告范围部分使用。
工作流
1) 获取 CodeRabbit 评论
从三个 GitHub API 端点获取评论,并筛选 CodeRabbit 机器人。对于大型 PR,使用 --paginate。机器人的登录名是 coderabbitai,但也可能显示为 coderabbitai[bot],因此使用 startswith 进行匹配。
演练/摘要评论(CodeRabbit 发布演练内容的 issue 评论):
gh api "repos/{owner}/{repo}/issues/{pr_number}/comments" \
--paginate \
--jq '[.[] | select(.user.login | startswith("coderabbitai"))]'
审查对象(顶层审查正文和状态):
gh api "repos/{owner}/{repo}/pulls/{pr_number}/reviews" \
--paginate \
--jq '[.[] | select(.user.login | startswith("coderabbitai"))]'
内联审查评论(带有文件路径和行号信息的文件级评论):
gh api "repos/{owner}/{repo}/pulls/{pr_number}/comments" \
--paginate \
--jq '[.[] | select(.user.login | startswith("coderabbitai"))]'
如果这三个端点中都没有找到 CodeRabbit 评论,则报告“PR #{pr_number} 中未找到 CodeRabbit 审查”,并停止。
2) 将评论解析为发现项
将原始 API 响应处理为标准化的发现项列表:
- 来自内联评论(
pulls/{pr}/comments):每条评论都成为一个发现项,包含path(来自.path)、line(来自.line或.original_line)、body(评论文本)、diff_hunk(周边上下文)和source: "inline"。这些是可执行发现项的主要来源。 - 来自审查正文(
pulls/{pr}/reviews):解析每条审查的body,提取可执行事项。标记source: "review"。 - 来自 issue 评论(
issues/{pr}/comments):解析演练内容中的文件级摘要和可执行事项。标记source: "walkthrough"。
内联评论是可执行发现项的主要来源。审查摘要和演练评论可提供上下文,也可能指出未关联到特定行的其他可执行事项。
3) 分类发现项
加载 references/triage.md 并遵循通用分类流程——分类、判定、确认模糊项、生成修复计划并报告。
停止条件
遇到以下情况时停止并询问如何处理:
ghCLI 未通过身份验证。- PR 不存在或无权访问。
- PR 中未找到 CodeRabbit 评论。
- 自动检测失败且未提供 PR 编号。
- 某项发现需要进行超出 PR 范围的架构更改。
- 对关键路径(身份验证、付款、数据完整性)中的代码,分类置信度较低。