关于 sentry-code-review
Sentry Code Review 是用于分析 GitHub 拉取请求中 Sentry 评审评论并处理已确认问题的技能。它筛选 Sentry 评论、检查相关代码,并指导针对性修复。
主要功能
- 01获取拉取请求中的 Sentry 评论
- 02提取问题详情和修复建议
- 03在相关代码中验证问题
- 04指导针对性问题修复
适用场景
- 01检查 GitHub 拉取请求中的 Sentry 发现
- 02确认报告的问题是否仍存在
- 03应用并总结已验证的修复
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ getsentry/ sentry-for-ai --skill sentry-code-review安装后在 Claude Code 中输入/sentry-code-review确认已加载。
详细介绍
Sentry 代码审查
你是一项专门用于分析和解决 Sentry 在 GitHub 拉取请求审查评论中指出的问题的技能。
Sentry PR 审查评论格式
Sentry 会针对 PR 中的代码更改发布指定行的审查评论。每条评论都包含:
评论元数据(来自 API)
author:机器人用户名(例如,“sentry[bot]”)file:评论针对的具体文件(例如,“src/sentry/seer/explorer/tools.py”)line:代码中的行号(文件级评论可能为null)body:完整的评论内容(包含 HTML details 标签的 Markdown)
正文结构
body 字段包含带有可折叠部分的 Markdown:
标题:
**Bug:** [Issue description]
<sub>Severity: CRITICAL | Confidence: 1.00</sub>
分析部分(位于 <details> 标签中):
<details>
<summary>🔍 <b>Detailed Analysis</b></summary>
Explains the technical problem and consequences
</details>
修复部分(位于 <details> 标签中):
<details>
<summary>💡 <b>Suggested Fix</b></summary>
Proposes a concrete solution
</details>
AI Agent 提示词(位于 <details> 标签中):
<details>
<summary>🤖 <b>Prompt for AI Agent</b></summary>
Specific instructions for reviewing and fixing the issue
Includes: Location (file#line), Potential issue description
</details>
问题示例
-
None 值导致的 TypeError
- 函数在预期返回列表时返回 None
- 遍历前缺少空值检查
-
验证问题
- 输入验证过于宽松
- 允许无效数据通过
-
错误处理缺失
- 错误已记录但未重新抛出
- 关键路径中发生静默失败
工作流程
1. 获取 PR 评论
提供 PR 编号或 URL 时:
# Get PR review comments (line-by-line code comments) using GitHub API
gh api repos/{owner}/{repo}/pulls/<PR_NUMBER>/comments --jq '.[] | select(.user.login | startswith("sentry")) | {author: .user.login, file: .path, line: .line, body: .body}'
或者直接使用 WebFetch 从 PR URL 获取。
2. 解析 Sentry 评论
- 仅处理来自 Sentry 的评论(用户名以 "sentry" 开头,例如 "sentry[bot]")
- 忽略来自 "cursor[bot]" 或其他机器人的评论
- 从每条评论中提取:
file:评论针对的文件路径line:具体行号(如果有)body:解析 Markdown/HTML 正文,提取:- Bug 描述(来自以 "Bug:" 开头的标题行)
- 严重级别(来自
<sub>Severity: X标签) - 置信度分数(来自 sub 标签中的
Confidence: X.XX) - 详细分析(来自
<summary>🔍 <b>Detailed Analysis</b></summary>details 块中的文本) - 建议修复(来自
<summary>💡 <b>Suggested Fix</b></summary>details 块中的文本) - AI Agent 提示词(来自
<summary>🤖 <b>Prompt for AI Agent</b></summary>details 块中的文本)
3. 分析每个问题
对于每条 Sentry 评论:
- 记录评论元数据中的
file和line——它们会告诉你要查看的确切位置 - 阅读评论中提到的具体文件
- 跳转到对应行号,查看有问题的代码
- 阅读“🤖 Prompt for AI Agent”部分,了解问题的具体上下文
- 确认当前代码中是否仍存在该问题
- 根据详细分析了解根本原因
- 评估建议的修复方案
4. 实施修复
对于每个已确认的问题:
- 阅读受影响的文件
- 实施建议的修复方案或自行解决
- 确保修复解决了根本原因
- 考虑边缘情况和副作用
- 使用 Edit 工具进行精确修改
5. 提供总结
分析并修复问题后,提供报告:
## Sentry Code Review Summary
**PR:** #[number] - [title]
**Sentry Comments Found:** [count]
### Issues Resolved
#### 1. [Issue Title] - [SEVERITY]
- **Confidence:** [score]
- **Location:** [file:line]
- **Problem:** [brief description]
- **Fix Applied:** [what you did]
- **Status:** Resolved
#### 2. [Issue Title] - [SEVERITY]
- **Confidence:** [score]
- **Location:** [file:line]
- **Problem:** [brief description]
- **Fix Applied:** [what you did]
- **Status:** Resolved
### Issues Requiring Manual Review
#### 1. [Issue Title] - [SEVERITY]
- **Reason:** [why manual review is needed]
- **Recommendation:** [suggested approach]
### Summary
- **Total Issues:** [count]
- **Resolved:** [count]
- **Manual Review Required:** [count]
重要指南
- 仅处理 Sentry:专注于来自 Sentry 的评论(用户名以 "sentry" 开头)
- 先验证:尝试修复前,务必确认问题确实存在
- 先读后改:使用 Edit 工具前,务必先使用 Read 工具
- 精准修复:针对根本原因进行有针对性的修复
- 安全性:如果不确定如何修复,请使用 AskUserQuestion 向用户征求指导
- 测试:提醒用户在应用修复后运行测试
常见的 Sentry 机器人问题类别
构建配置问题
- 构建输出中缺少文件
- tsconfig 设置不正确
- 构建脚本中缺少文件复制步骤
错误处理问题
- 捕获错误但未重新抛出
- 关键路径中发生静默失败
- 缺少错误边界
运行时配置问题
- 缺少环境变量
- 路径解析错误
- 缺少必需的依赖项
类型安全问题
- 缺少空值检查
- 可能失败的类型断言
- 缺少输入验证
评论
支持 Markdown