GitHubPullRequest审核Skill github-pr-review

这个技能用于通过GitHub API对Pull Request进行结构化代码审查,发布内联评论、建议和优先级标签。它自动化代码审核流程,提高开发效率,支持单次API调用打包所有评论,包含关键词如GitHub、PR审查、代码审核、API调用、内联评论、优先级标签、DevOps工具和持续集成。

DevOps 0 次安装 0 次浏览 更新于 3/18/2026

name: github-pr-review description: 使用GitHub API发布PR审查评论,包括内联评论、建议和优先级标签。 triggers:

  • /github-pr-review

GitHub PR审查

使用GitHub API发布结构化代码审查反馈,包括对特定行的内联评论。

关键规则:单次API调用

将所有评论打包到一次审查API调用中。不要单独发布评论。

发布审查

使用GitHub CLI(gh)。GITHUB_TOKEN自动可用。

gh api \
  -X POST \
  repos/{owner}/{repo}/pulls/{pr_number}/reviews \
  -F commit_id='{commit_sha}' \
  -F event='COMMENT' \
  -F body='简要1-3句总结。' \
  -F comments[][path]='path/to/file.py' \
  -F comments[][line]=42 \
  -F comments[][side]='RIGHT' \
  -F comments[][body]='🟠 重要:你的评论在这里。' \
  -F comments[][path]='another/file.js' \
  -F comments[][line]=15 \
  -F comments[][side]='RIGHT' \
  -F comments[][body]='🟡 建议:另一个评论。'

参数

参数 描述
commit_id 要评论的提交SHA(使用git rev-parse HEAD
event COMMENTAPPROVEREQUEST_CHANGES
path 文件中路径,如差异所示
line 新版本中的行号(差异的右侧)
side 对于新增/修改行使用RIGHT,对于删除行使用LEFT
body 带优先级标签的评论文本

多行评论

对于跨多行的评论,添加start_line以指定范围:

  -F comments[][path]='path/to/file.py' \
  -F comments[][start_line]=10 \
  -F comments[][line]=12 \
  -F comments[][side]='RIGHT' \
  -F comments[][body]='🟡 建议:重构此块:

```suggestion
line_one = "new"
line_two = "code"
line_three = "here"
```'

重要:建议必须具有与范围相同的行数(例如,行10-12 = 3行)。

优先级标签

以优先级标签开始每个评论。最小化琐事 - 将次要样式问题留给linters。

标签 何时使用
🔴 关键 必须修复:安全漏洞、错误、数据丢失风险
🟠 重要 应该修复:逻辑错误、性能问题、缺少错误处理
🟡 建议 值得考虑:对清晰度或可维护性的显著改进
🟢 琐事 可选:次要样式偏好(慎用)

示例:

🟠 重要:此函数未处理None,可能导致AttributeError。

```suggestion
if user is None:
    raise ValueError("User cannot be None")

## GitHub建议

对于小代码更改,使用建议语法以便一键应用:

~~~
```suggestion
improved_code_here()

建议用于:重命名、拼写错误、小规模重构(1-5行)、类型提示、文档字符串。

避免用于:大规模重构、架构变更、模糊改进。

## 查找行号

```bash
# 从差异头:@@ -old_start,old_count +new_start,new_count @@
# 从new_start开始计数新增/修改行

grep -n "pattern" filename     # 查找行号
head -n 42 filename | tail -1  # 验证行内容
```

## 备用方案:curl

如果`gh`不可用:

```bash
curl -X POST \
  -H "Authorization: token $GITHUB_TOKEN" \
  -H "Accept: application/vnd.github+json" \
  "https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}/reviews" \
  -d '{
    "commit_id": "{commit_sha}",
    "event": "COMMENT",
    "body": "审查总结。",
    "comments": [
      {"path": "file.py", "line": 42, "side": "RIGHT", "body": "评论"},
      {"path": "file.py", "start_line": 10, "line": 12, "side": "RIGHT", "body": "多行"}
    ]
  }'
```

## 总结

1. 分析代码并识别重要问题(最小化琐事)
2. 发布**一次**审查,包含所有内联评论打包
3. 对每个评论使用优先级标签(🔴🟠🟡🟢)
4. 对具体代码更改使用建议语法
5. 保持审查正文简要(细节在内联评论中)
6. 如果没有问题:发布简短消息