SuperAPI AI 工具集

resolve-ai-pr-reviews

编程与开发

查看项目

更新于 10-16 08:52

技能介绍

用途

该技能用于集中处理 Pull Request 中由 AI 工具产生的审查反馈,主要面向 CodeRabbit 和 Gemini 两类审查者。它帮助开发者拉取评论、筛选未解决项、修复代码、关闭对应线程并请求重新审查。

主要能力

  • 收集上下文:识别仓库 owner/name 与 PR 编号。
  • 拉取 AI 评论:同时获取 review comments 和 issue comments,按作者名匹配 coderabbitai 或 gemini(不区分大小写),仅跟踪未解决项。
  • 汇总与确认:以日语输出当前状态(已扫描的 AI 评论数与未解决数)、未解决清单(文件/路径 + 动作)、已执行命令,以及需要决策的问题。
  • 应用修复并验证:以最小 diff 实现改动,遵循项目约定;在可行时运行相关测试/lint,若跳过则说明。
  • 处理 Gemini 审查线程:不关闭 CodeRabbit 线程(其自动关闭);修复完成后手动关闭 Gemini 线程,关闭前先添加简短回复说明修复内容。
  • 推送并请求重新审查:在适合仓库工作流时提交并推送,随后在 PR 上发布 /gemini review。
  • 回报结果:确认已应用的修复、已运行的测试、已解决的 Gemini 线程和已请求的重新审查,并列出剩余未解决项或待决策事项。

使用方式

技能通过 gh CLI 执行。关键命令包括:

获取仓库与 PR 信息:

OWNER=$(gh repo view --json owner --jq .owner.login)
REPO=$(gh repo view --json name --jq .name)
PR=$(gh pr view --json number --jq .number) # or set PR explicitly

拉取 review comments:

gh api repos/$OWNER/$REPO/pulls/$PR/comments --paginate --jq \
  '.[] | select(.user.login | test("coderabbitai|gemini"; "i")) |
   {id, user: .user.login, path, line, body, url: .html_url}'

拉取 issue comments:

gh api repos/$OWNER/$REPO/issues/$PR/comments --paginate --jq \
  '.[] | select(.user.login | test("coderabbitai|gemini"; "i")) |
   {id, user: .user.login, body, url: .html_url}'

获取未解决的 Gemini 审查线程 ID:

THREAD_IDS=$(gh api graphql -f query='
query($owner:String!, $repo:String!, $number:Int!) {
  repository(owner:$owner, name:$repo) {
    pullRequest(number:$number) {
      reviewThreads(first:100) {
        nodes {
          id
          isResolved
          comments(first:50) {
            nodes { author { login } }
          }
        }
      }
    }
  }
}' -F owner=$OWNER -F repo=$REPO -F number=$PR --jq \
  '.data.repository.pullRequest.reviewThreads.nodes[] |
   select(.isResolved == false) |
   select([.comments.nodes[].author.login] | any(test("gemini"; "i"))) |
   .id')

关闭 Gemini 线程:

for id in $THREAD_IDS; do
  gh api graphql -f query='
mutation($id:ID!) {
  resolveReviewThread(input: {threadId: $id}) {
    thread { isResolved }
  }
}' -F id=$id
done

请求重新审查:

gh pr comment $PR --body "/gemini review"

适用场景

  • 需要批量清理 CodeRabbit 与 Gemini 在 PR 中留下的审查意见。
  • 希望以日语获得结构化的未解决项汇总与决策请求。
  • 需要区分处理两类 AI 审查线程(Gemini 手动关闭、CodeRabbit 自动关闭)。

限制

  • 依赖 gh CLI 与相应 API 权限。
  • 仅针对作者名匹配 coderabbitai 或 gemini 的评论。
  • 当评论与当前策略或实现冲突时,需向用户请求方向。
  • 发布 /gemini review 后耗时较长,需用户确认后再重新执行该技能。
  • 资料未提供收费、价格、平台支持范围等信息。