SuperAPI AI 工具集

github-code-review

编程与开发

查看项目

更新于 10-16 09:06

技能介绍

用途

本技能用于代码评审,覆盖两种场景:一是对本地改动做推送前评审(Pre-Push Review),二是评审 GitHub 上的 Pull Request。技能说明指出,其中大部分内容使用纯 git 命令,gh 与 curl 的分支只在 PR 层级交互时才起作用。

前置条件

  • 已通过 GitHub 认证(技能说明中指向 github-auth 技能)。
  • 处于一个 git 仓库内。

PR 交互前的环境准备:先检测 gh 命令是否存在且已登录,若满足则使用 AUTH="gh";否则走 git 路径,并在 GITHUB_TOKEN 为空时,尝试从 shell 环境、项目 .env 文件或 ~/.git-credentials 中读取。随后通过 git remote get-url origin 解析出 OWNER 与 REPO。

主要能力

一、评审本地改动(推送前)

使用纯 git,无需 API:

  • git diff --staged 查看暂存改动;
  • git diff main...HEAD 查看相对 main 的全部改动(即一个 PR 会包含的内容);
  • --name-only 仅列文件名,--stat 查看增删统计;
  • 用 git log main..HEAD --oneline 了解整体脉络;
  • 逐文件查看 diff,并结合 read_file 获取完整上下文;
  • 通过 grep 检查常见问题:遗留的调试语句(print、console.log、debugger)与 TODO/FIXME/HACK/XXX 标记、误暂存的大文件、密码/密钥/凭据模式、合并冲突标记。

评审结果按结构化格式呈现:Critical、Warnings、Suggestions、Looks Good。

二、评审 GitHub 上的 PR

  • 查看 PR 详情与 diff:gh pr view 123、gh pr diff 123、gh pr diff 123 --name-only;或用 curl 调用 REST API 获取 PR 元数据与变更文件列表。
  • 本地检出 PR 做完整评审:git fetch origin pull/123/head:pr-123 后 git checkout pr-123(gh 下可用 gh pr checkout 123),之后可使用 read_file、search_files、运行测试等,并以 git diff main...pr-123 对比基分支。
  • 发表评论:一般 PR 评论可用 gh pr comment 或 curl 调用 issues comments 接口。
  • 行内评论:使用 gh api repos/$OWNER/$REPO/pulls/123/comments 或 curl 调用 pulls comments 接口,需提供 body、path、commit_id、line、side(如 "RIGHT")。技能特别说明 line 指新版本文件中的行号,删除行使用 "side": "LEFT"。
  • 提交正式评审:gh pr review 123 --approve/--request-changes/--comment;或用 curl 提交带多条行内评论的原子评审,event 取值为 "APPROVE"、"REQUEST_CHANGES"、"COMMENT"。

三、评审清单

系统性检查以下维度:

  • 正确性:代码是否如期工作、边界情况(空输入、null、大数据、并发)、错误路径处理。
  • 安全性:无硬编码密钥/凭据/API key、用户输入校验、无 SQL 注入/XSS/路径穿越、必要的鉴权与授权检查。
  • 代码质量:命名清晰、无多余复杂度或过早抽象、DRY、函数职责单一。
  • 测试:新代码路径是否被测试、正常与异常用例、测试可读可维护。
  • 性能:无 N+1 查询或不必要循环、合理缓存、异步路径中无阻塞操作。
  • 文档:公共 API 有文档、非显而易见逻辑说明"为什么"、行为变更时更新 README。

使用方式

推送前评审工作流:先看改动范围(--stat),再读完整 diff,必要时用 read_file 补充上下文,套用清单,按分层格式输出;若发现严重问题,可提出在推送前修复。

PR 端到端评审工作流(9 步):

  1. 设置环境(可 source github-auth 技能的 gh-env.sh,或运行技能顶部内联准备块);
  2. 收集 PR 上下文(元数据、描述、变更文件列表;gh 下还可用 gh pr checks 123);
  3. 本地检出 PR;
  4. 阅读 diff 理解改动,逐文件结合 read_file 查看完整上下文;
  5. 本地运行自动化检查(如 pytest、npm test、cargo test、go test、ruff、eslint、clippy 等,视项目而定);
  6. 套用评审清单;
  7. 将评审发布到 GitHub(approve 或 request-changes,并附行内评论);
  8. 另发一条顶层汇总评论,采用 references/review-output-template.md 的输出格式;
  9. 清理:git checkout main、git branch -D pr-$PR_NUMBER。

裁决建议:Approve 用于无严重或警告级问题、仅有小建议或全部通过时;Request Changes 用于存在应在合并前修复的严重或警告级问题时;Comment 用于仅有观察与建议、无阻塞项,或不确定、PR 仍为草稿时。

适用场景

  • 开发者在推送代码前做自检评审;
  • 在 GitHub 上接收并评审他人提交的 Pull Request;
  • 需要以行内评论或正式评审形式给出结构化反馈。

限制与保护性约束

技能开头包含 OpenClicky 兼容性防护要求:行动前须遵循 ../_shared/OpenClickySkillCompatibilityPolicy.md;在承诺执行前须核实所需的本地命令、工具、密钥或桥接端点;除非本技能进一步收窄范围,否则将发送、发布、部署、删除、移动、合并、播放列表/库变更、云端写入与应用控制点击视为外部写入;当工具、认证或 macOS 权限不可用时,应停止并报告确切的缺失设置步骤,不得循环重试或静默切换到浏览器自动化。

关于具体版本、收费、价格、平台支持范围等信息,资料中暂未提供。