name: github-pr description: GitHub PR 代码审查工作流工具 version: 0.1.0-beta license: MIT compatibility: opencode
概述
用于 GitHub 拉取请求操作的 CLI 工具。旨在支持自动化代码审查工作流。需要安装并认证 GitHub CLI (gh)。
前提条件
- 已安装 bun 运行时
- 已安装并认证 GitHub CLI
brew install gh gh auth login
命令
检查是否需要审查
通过检查各种条件来确定 PR 是否需要审查。
bun .opencode/skill/github-pr/check-review-needed.js [pr-number]
参数:
pr-number- PR 编号(可选,默认为当前分支的 PR)
输出: JSON 对象,包含:
shouldReview- 布尔值,指示是否应继续审查reason- 决策的解释prNumber- 检查的 PR 编号
检查的条件:
- PR 未关闭或合并
- PR 不是草稿
- PR 不是来自已知机器人(dependabot、renovate 等)
- PR 标题未表明是自动化操作(bump、chore(deps) 等)
- PR 尚未被 Claude/AI 审查过
- PR 不是琐碎的(更改行数不超过 2 行)
示例:
# 检查当前分支的 PR
bun .opencode/skill/github-pr/check-review-needed.js
# 检查特定 PR
bun .opencode/skill/github-pr/check-review-needed.js 123
列出指南文件
查找与 PR 更改相关的 AGENTS.md(或 CLAUDE.md)文件。
bun .opencode/skill/github-pr/list-guideline-files.js [pr-number] [--json]
参数:
pr-number- PR 编号(可选,默认为当前分支的 PR)
选项:
--json- 以 JSON 数组形式输出,包含文件内容
搜索位置:
- 仓库根目录
- 包含 PR 中修改文件的所有目录
- 修改文件的父目录
优先级: 如果同一目录中同时存在 AGENTS.md 和 CLAUDE.md,则优先使用 AGENTS.md。
示例:
# 列出当前 PR 的指南文件
bun .opencode/skill/github-pr/list-guideline-files.js
# 以 JSON 格式获取完整内容
bun .opencode/skill/github-pr/list-guideline-files.js 123 --json
JSON 输出格式:
[
{
"path": "AGENTS.md",
"content": "# 项目指南
..."
},
{
"path": "src/components/AGENTS.md",
"content": "# 组件指南
..."
}
]
发布行内评论
在 PR 的特定行或行范围内发布审查评论。
bun .opencode/skill/github-pr/post-inline-comment.js <pr-number> --path <file> --line <n> --body <text>
参数:
pr-number- PR 编号(如果在 PR 分支上则为可选)
选项:
--path <file>- 要评论的文件路径(必需)--line <n>- 要评论的行号(必需)--start-line <n>- 多行评论的起始行(可选)--body <text>- 评论正文,使用 Markdown 格式(必需)
建议块: 对于可以直接提交的小修复,包含一个建议块:
修复错误处理:
```suggestion
try {
await authenticate();
} catch (e) {
handleAuthError(e);
}
```
重要提示: 建议必须是完整的。作者应该能够点击“提交建议”而无需在其他地方进行额外更改。
示例:
# 单行评论
bun .opencode/skill/github-pr/post-inline-comment.js 123 \
--path src/auth.ts \
--line 67 \
--body "缺少 OAuth 回调的错误处理"
# 多行评论(第 65-70 行)
bun .opencode/skill/github-pr/post-inline-comment.js 123 \
--path src/auth.ts \
--line 70 \
--start-line 65 \
--body "此身份验证块需要重构"
与 gh CLI 集成
这些工具封装了 GitHub CLI (gh)。对于这些实用程序未涵盖的操作,请直接使用 gh:
# 查看 PR 详情
gh pr view 123 --json title,body,state,isDraft,files
# 获取 PR 差异
gh pr diff 123
# 查看 PR 评论
gh pr view 123 --comments
# 发布常规评论
gh pr comment 123 --body "评论文本"
# 查看 PR 头部的文件
gh api repos/{owner}/{repo}/contents/{path}?ref={branch}
输出行为
- 命令输出直接显示在用户终端中
- JSON 输出格式化为可读性和管道传输
- 当需要以编程方式处理输出时,请使用
--json标志