用途
github-code-review 用于对代码进行审查,既可以在推送前审查本地改动,也可以审查 GitHub 上的开放 PR。该技能的大部分操作使用普通 git 命令完成,只有在进行 PR 级别交互时,才需要区分使用 gh 还是 curl。
前提条件
- 已通过 GitHub 认证(参见 github-auth 技能)。
- 处于一个 git 仓库内。
主要能力
审查本地改动(推送前)
这是纯 git 操作,无需 API。可以获取暂存区改动(git diff --staged)、相对主分支的全部改动(git diff main...HEAD)、仅文件名、以及每个文件的增删统计。审查策略包括先看整体规模与提交记录,再逐文件审查,并结合 read_file 查看完整上下文。还可以检查常见问题,例如遗留的调试语句、TODO、console.log、意外暂存的大文件、密钥或凭据模式、合并冲突标记。
审查 GitHub 上的 PR
可以查看 PR 详情、diff、变更文件列表。使用 gh 时可用 gh pr view、gh pr diff;使用 git + curl 时可通过 GitHub REST API 获取 PR 元数据和文件列表。还可以用普通 git 将 PR 分支检出到本地进行完整审查(git fetch origin pull/123/head:pr-123),从而使用 read_file、search_files、运行测试等。
发表评论与正式审查
可以发表普通 PR 评论、单条行内评论,以及提交正式审查(批准、请求修改、评论)。行内评论需要提供文件路径、commit SHA、行号和 side(新增行用 RIGHT,删除行用 LEFT)。正式审查支持通过 gh 或 curl 原子性地提交多条行内评论,event 取值包括 APPROVE、REQUEST_CHANGES、COMMENT。
审查清单
技能提供系统化的审查清单,覆盖:正确性(代码是否实现声称功能、边界情况、错误路径)、安全性(无硬编码密钥、输入验证、无 SQL 注入/XSS/路径遍历、认证授权检查)、代码质量(命名清晰、无过度复杂、DRY、函数职责单一)、测试(新代码路径是否测试、正常与错误情况、可读可维护)、性能(无 N+1 查询、适当缓存、异步路径无阻塞操作)、文档(公共 API 文档、非显而易见逻辑的注释、README 更新)。
使用方式
推送前审查工作流
git diff main...HEAD --stat查看改动范围。git diff main...HEAD阅读完整 diff。- 对每个改动文件,必要时用 read_file 获取更多上下文。
- 应用审查清单。
- 按 Critical / Warnings / Suggestions / Looks Good 的结构呈现发现。
- 若发现严重问题,可在推送前提供修复建议。
PR 端到端审查工作流
- 设置环境(source gh-env.sh 或运行技能顶部的内联设置块)。
- 收集 PR 上下文:元数据、描述、变更文件列表、检查状态。
- 本地检出 PR 分支。
- 阅读 diff 并理解改动,必要时用 read_file 查看完整上下文。
- 本地运行自动化检查(如测试、linter)。
- 应用审查清单。
- 将审查结果发布到 GitHub(正式审查加行内评论)。
- 同时发布一条顶层摘要评论。
- 清理:切回主分支并删除临时分支。
审查结论的选择
- Approve:没有严重或警告级问题,只有小建议或全部通过。
- Request Changes:存在任何应在合并前修复的严重或警告级问题。
- Comment:有观察和建议,但没有阻塞性问题(不确定或 PR 为草稿时使用)。
适用场景
- 在推送代码前进行自查或团队审查。
- 审查 GitHub 上的开放 PR,并留下行内评论和正式审查意见。
- 需要系统化检查正确性、安全性、代码质量、测试、性能和文档时。
限制
- 需要已通过 GitHub 认证并处于 git 仓库内。
- PR 级别交互需要 gh 或 GITHUB_TOKEN 配合 curl。
- 行内评论需要正确的 commit SHA、文件路径和行号;删除行需使用 side 为 LEFT。
- 资料未提供该技能的收费、价格、平台支持范围或效果保证等信息。