SuperAPI AI 工具集

pr-review-comments

测试与质量

查看项目

更新于 10-16 00:31

技能介绍

用途:向 GitHub Pull Request 提交行内(inline)审查评论,评论直接出现在 PR diff 的特定代码行上,便于作者定位与处理问题。适用于对指定行发表评论、自动化代码审查反馈、通过 GitHub API 批量提交审查评论。

前提条件:需安装 GitHub CLI(用 gh --version 检查),Linux 安装命令为 curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg,随后执行 sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg、echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null、sudo apt update && sudo apt install gh -y;并用 gh auth status 检查认证,未认证时执行 gh auth login -h github.com -p https --web 按设备码流程完成。

主要用法:先获取 PR 的 head commit SHA:COMMIT_SHA=$(gh api repos/{OWNER}/{REPO}/pulls/{PR_NUMBER} --jq '.head.sha');再创建 JSON 载荷,每条评论包含 path(仓库根相对路径)、line(新版本文件行号,即 diff 右侧)、body(支持 Markdown);然后提交:gh api repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}/reviews --method POST --input /tmp/review.json。event 可为 COMMENT(仅评论)、APPROVE(批准)、REQUEST_CHANGES(请求修改)。删除行需用 side: "LEFT" 及旧版本行号;多行评论可用 start_line 与 line。评论正文支持完整 GitHub Markdown,JSON 中用 \n 换行,可用 emoji 前缀标注严重程度(🔴 严重、🟡 中等、🟢 建议)。

替代方式:gh pr review {PR_NUMBER} --repo {OWNER}/{REPO} --comment --body "..." 仅发一般评论,不支持行内评论。

限制与排错:行号必须存在于 PR diff 中,否则 API 拒绝;出现 Validation Failed 需检查行号与文件路径;Resource not accessible 需确认仓库写权限并重新认证;评论未显示在指定行时,该行须属于 diff(新增、修改或上下文行)。仓库 microsoft/semantic-link-labs 的常见路径为 src/sempy_labs/{module}/_items.py 与 src/sempy_labs/{module}/init.py,示例脚本见 examples/ 文件夹中的 post_pr1059_review.sh。