技能简介
该技能为GitHub Pull Request提供自动化代码审查,通过分析代码差异识别安全问题、错误处理缺陷、代码风格问题及测试覆盖缺口,支持Go、Python和JavaScript/TypeScript三种语言。
业务背景
开发团队每日需处理大量代码合并请求,人工审查耗时且易遗漏安全隐患。该助手自动扫描PR中的硬编码密钥、错误处理缺陷、调试残留及测试覆盖缺口,在代码入库前拦截风险,降低生产事故概率,同时减少资深工程师的重复审查工作量。
落地案例:某后端团队提交Go模块PR后,助手自动检测到两处被丢弃的错误(_ := db.Connect())及一个硬编码的测试API密钥,同步发现新增函数缺少对应单元测试。审查报告以Markdown形式输出至指定目录,技术负责人据此要求补全错误处理和测试用例后再合并,避免问题代码流入主干。
能做什么
- 扫描PR中的硬编码凭证、AWS密钥等安全隐患
- 检测被丢弃的错误(如Go的
_ :=)、裸except:等错误处理问题 - 标记生产环境中的调试输出(
fmt.Print/print()/console.log) - 识别TODO/FIXME/HACK/XXX等技术债务标记
- 对比源文件变更与测试文件变更,发现测试覆盖缺口
- 集成golangci-lint/ruff进行本地代码检查
- 跟踪PR的HEAD SHA,避免重复审查同一版本
使用说明
安装前提
- 安装
ghCLI并完成认证:gh auth login - 确保仓库访问权限(至少读取,如需评论则需写入权限)
- 可选:安装
golangci-lint(Go项目)或ruff(Python项目)
常用命令
# 审查当前仓库所有开放PR
scripts/github/pr-reviewer.sh check
# 审查指定PR
scripts/github/pr-reviewer.sh review 42
# 将审查结果发布为GitHub评论
scripts/github/pr-reviewer.sh post 42
# 查看所有开放PR状态
scripts/github/pr-reviewer.sh status
# 列出未审查PR(用于定时任务集成)
scripts/github/pr-reviewer.sh list-unreviewed
环境变量配置
PR_REVIEW_REPO:GitHub仓库(格式owner/repo,默认自动检测)PR_REVIEW_DIR:本地检出路径(默认当前git根目录)PR_REVIEW_STATE:状态文件路径(默认./data/pr-reviews.json)PR_REVIEW_OUTDIR:报告输出目录(默认./data/pr-reviews/)
输入与输出
见下方输入与输出表格。
| 项目 | 内容 |
|---|---|
| 输入 | GitHub仓库标识(owner/repo)、PR编号或批量审查指令、本地检出路径、gh CLI认证 |
| 输出 | Markdown审查报告(含安全/错误处理/风格/TODO/测试覆盖分析)、JSON状态文件、可选GitHub评论 |
| 适用人群 | 后端开发工程师、技术负责人、DevOps工程师、需要自动化PR审查流程的开发团队 |
| 不包含 | 非GitHub平台支持、除Go/Python/JS外的语言、自动代码修复、IDE插件 |
风险提示
- 需要有效的
ghCLI认证令牌,过期会导致API调用失败 - 本地lint检查需要完整检出目标仓库,网络延迟可能影响性能
- 状态文件默认保存在本地磁盘,多机部署时需考虑同步机制
- 自动发布的评论会占用PR讨论区,建议先人工确认再启用post功能
- 模式匹配基于正则表达式,可能存在误报或漏报情况
来源信息
原始链接:https://github.com/openclaw/skills/tree/main/skills/briancolinger/pr-reviewer/SKILL.md
来源类型:GitHub开源项目
常见问题
Q1:PR代码审查助手 适合哪些场景?
A:适合需要「该技能为GitHub Pull Request提供自动化代码审查,通过分」的场景,尤其是希望快速验证并落地的团队与个人。
Q2:第一次使用应该先做什么?
A:先明确目标任务,再按照页面中的“能做什么”和“使用说明”完成最小可行流程。
Q3:如何判断是否值得长期使用?
A:建议连续使用 1-2 周,对比效率、稳定性和协作成本,再决定是否纳入长期工具栈。
