mcpField
S
sentry-pr-code-review

sentry-pr-code-review

github.com/getsentry测试与质量25632 次安装35 周前更新
代码仓库

关于 sentry-pr-code-review

用于处理 GitHub PR 中 Seer by Sentry 评论的代码审查技能,帮助开发者核实问题并修复有效发现。它提供从获取评论、解析分析到汇报处理结果的步骤。

主要功能

  1. 01通过 gh CLI 获取 Seer 评论
  2. 02提取问题描述、严重性与建议
  3. 03检查代码并判断问题是否仍存在
  4. 04修复问题并评估回归风险
  5. 05汇总已解决与跳过的发现

适用场景

  1. 01处理 PR 中未解决的 Seer 评论
  2. 02核实自动代码审查发现
  3. 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:验证并修复

对于每个问题:

  1. 读取指定行处的文件
  2. 确认该问题在当前代码中仍然存在(并非已在后续提交中修复)
  3. 审查周边代码,评估它是实际问题还是误报
  4. 实施修复(以建议修复为起点,或自行编写)
  5. 考虑边界情况和回归风险

阶段 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