关于 sentry-pr-code-review
用于处理 GitHub PR 中 Seer by Sentry 评论的代码审查技能,帮助开发者核实问题并修复有效发现。它提供从获取评论、解析分析到汇报处理结果的步骤。
主要功能
- 01通过 gh CLI 获取 Seer 评论
- 02提取问题描述、严重性与建议
- 03检查代码并判断问题是否仍存在
- 04修复问题并评估回归风险
- 05汇总已解决与跳过的发现
适用场景
- 01处理 PR 中未解决的 Seer 评论
- 02核实自动代码审查发现
- 03查找近期含 Seer 评论的开放 PR
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ getsentry/ sentry-agent-skills --skill sentry-pr-code-review安装后在 Claude Code 中输入/sentry-pr-code-review确认已加载。
详细介绍
Sentry 代码审查
审查并修复 Seer(由 Sentry 提供)在 GitHub PR 评论中识别出的问题。
在以下情况调用此技能
- 用户要求对某个 PR“审查 Sentry 评论”或“修复 Sentry 问题”
- 用户分享了一个 PR URL/编号,并提到 Sentry 或 Seer 反馈
- 用户要求“处理 Sentry 审查”或“解决 Sentry 发现的问题”
- 用户想查找存在未解决 Sentry 评论的 PR
前提条件
- 已安装并完成身份验证的
gh命令行 - 仓库已安装 Seer by Sentry GitHub App
重要: 下面解析的评论格式基于 Seer 当前的输出。这不是 API 契约,可能会发生变化。请始终验证实际的评论结构。
阶段 1:获取 Seer 评论
gh api repos/{owner}/{repo}/pulls/{PR_NUMBER}/comments --paginate \
--jq '.[] | select(.user.login == "seer-by-sentry[bot]") | {file: .path, line: .line, body: .body}'
机器人登录名是 seer-by-sentry[bot] —— 不是 sentry[bot] 或 sentry-io[bot]。
如果未给出 PR 编号,请查找带有 Seer 评论的近期 PR:
gh pr list --state open --json number,title --limit 20 | \
jq -r '.[].number' | while read pr; do
count=$(gh api "repos/{owner}/{repo}/pulls/$pr/comments" --paginate \
--jq '[.[] | select(.user.login == "seer-by-sentry[bot]")] | length')
[ "$count" -gt 0 ] && echo "PR #$pr: $count Seer comments"
done
阶段 2:解析每条评论
从 markdown 正文中提取:
- 缺陷描述:以
**Bug:**开头的行 - 严重程度/置信度:位于
<sub>Severity: X | Confidence: X.XX</sub>中 - 分析:位于
<summary>🔍 <b>Detailed Analysis</b></summary>块内 - 建议修复:位于
<summary>💡 <b>Suggested Fix</b></summary>块内 - AI 提示词:位于
<summary>🤖 <b>Prompt for AI Agent</b></summary>块内
阶段 3:验证并修复
对于每个问题:
- 读取指定行处的文件
- 确认该问题在当前代码中仍然存在(并非已在后续提交中修复)
- 审查周边代码,评估它是实际问题还是误报
- 实施修复(以建议修复为起点,或自行编写)
- 考虑边界情况和回归风险
阶段 4:总结并报告结果
## Seer Review: PR #[number]
### Resolved
| File:Line | Issue | Severity | Fix Applied |
|-----------|-------|----------|-------------|
| path:123 | desc | HIGH | what done |
### Skipped (false positive or already fixed)
| File:Line | Issue | Reason |
|-----------|-------|--------|
**Summary:** X resolved, Y skipped
Seer 审查触发条件
| 触发条件 | 时机 |
|---|---|
| PR 设置为“Ready for Review” | 自动进行错误预测 |
| PR 就绪状态下推送提交 | 重新运行预测 |
@sentry review 评论 | 手动触发完整审查 + 建议 |
| 草稿 PR | 跳过 —— 在标记为就绪前不进行审查 |
故障排查
| 问题 | 解决方案 |
|---|---|
| 未找到 Seer 评论 | 验证仓库是否已安装 Seer GitHub App |
| 机器人名称不匹配 | 登录名是 seer-by-sentry[bot],不是 sentry[bot] |
| 新 PR 上未出现评论 | PR 必须为“Ready for Review”(非草稿) |
gh api 返回部分结果 | 确保包含 --paginate 标志 |
常见问题类型
| 类别 | 示例 |
|---|---|
| 类型安全 | 缺少空值检查、不安全的类型断言 |
| 错误处理 | 被吞掉的错误、缺少边界 |
| 验证 | 过于宽松的输入、缺少清理 |
| 配置 | 缺少环境变量、路径不正确 |
评论
支持 Markdown