Local MCP Server
在Termux中运行本地MCP服务器,支持Ollama模型的文件读取与命令执行。
下载 11
自动化分析 GitHub Pull Request 的代码变更,检测安全、错误处理与风格问题。
openclaw skills install @briancolinger/pr-reviewer命令、参数、文件名以原文为准
GitHub 拉取请求的自动化代码审查工具。分析代码差异,检测安全问题、错误处理缺失、风格问题以及测试覆盖率。
gh CLI(运行 gh auth status 验证)golangci-lint 用于 Go 语言检查,ruff 用于 Python 语言检查# 审查当前仓库中所有开放的拉取请求
scripts/github/pr-reviewer.sh check
# 审查指定的拉取请求
scripts/github/pr-reviewer.sh review 42
# 将审查结果作为 GitHub 评论发布
scripts/github/pr-reviewer.sh post 42
# 检查所有开放拉取请求的状态
scripts/github/pr-reviewer.sh status
# 列出未审查的拉取请求(适用于心跳或定时任务集成)
scripts/github/pr-reviewer.sh list-unreviewed可通过设置以下环境变量,或由脚本自动从当前 Git 仓库推断:
PR_REVIEW_REPO — GitHub 仓库格式为 owner/repo(默认:通过 gh repo view 自动检测)PR_REVIEW_DIR — 本地检出路径,用于代码检查(默认:当前工作目录的 Git 根目录)PR_REVIEW_STATE — 状态文件路径(默认:./data/pr-reviews.json)PR_REVIEW_OUTDIR — 报告输出目录(默认:./data/pr-reviews/)PR_REVIEW_STATE**(默认:./data/pr-reviews.json)—— 记录已审查的拉取请求及其 HEAD 提交哈希PR_REVIEW_OUTDIR**(默认:./data/pr-reviews/)—— 存放 Markdown 格式的审查报告| 类别 | 图标 | 示例 |
|---|---|---|
| 安全性 | 🔴 | 代码中硬编码的凭据、AWS 密钥、敏感信息 |
| 错误处理 | 🟡 | 被丢弃的错误(Go 中使用 _ :=)、裸 except:(Python)、未检查的 Close() 调用 |
| 风险 | 🟠 | 直接调用 panic()、process.exit() |
| 代码风格 | 🔵 | 生产环境中使用 fmt.Print/print()/console.log、过长的代码行 |
| TODO 标记 | 📝 | 代码中的 TODO、FIXME、HACK、XXX 注释 |
| 测试覆盖率 | 📊 | 修改了源码文件但未同步更新对应的测试文件 |
记录每个拉取请求的 HEAD 提交哈希。仅在新提交推送后重新审查。可使用 review <PR#> 强制触发重审。
报告以 Markdown 文件形式保存在输出目录中。每份报告包含:
可添加到周期性检查任务(如心跳检测、cron 任务或 CI 流水线)中:
UNREVIEWED=$(scripts/github/pr-reviewer.sh list-unreviewed)
if [ -n "$UNREVIEWED" ]; then
scripts/github/pr-reviewer.sh check
fi脚本中的分析规则按语言组织。可通过在 analyze_diff() 函数中追加模式来新增检查规则:
# 添加新的 Go 语言检查模式
go_patterns.append((r'^\+.*os\.Exit\(', 'RISK', '直接调用 os.Exit() — 建议返回错误'))已收录 1 个 Skill