SuperAPI AI 工具集

check-pr

编程与开发

查看项目

更新于 10-16 07:51

技能介绍

用途

check-pr 用于检查代码评审请求,覆盖 GitHub Pull Request、GitLab Merge Request 以及 Perforce shelved changelist。它会分析评审评论、状态检查(CI)和描述完整性,并帮助处理发现的问题。适用于被要求检查、修复或准备变更以供评审的场景。

主要能力

  • 自动检测平台:通过 .p4config 文件或 P4CLIENT/P4PORT 环境变量识别 Perforce;否则通过 git remote 判断 GitLab 或 GitHub。支持通过 --vcs 参数覆盖。
  • 识别 PR/MR/CL:若未提供编号,则自动检测当前分支对应的 PR/MR,或 Perforce 的默认待处理 changelist。
  • 获取详情:拉取标题、描述、状态、评审、评论、状态检查等。对 GitHub 会检查 issue comments 端点以捕获被编辑的机器人评论;对 GitLab 会分页获取 discussions;对 Perforce 会获取 changelist 描述、文件、shelved 文件及 diff。
  • 等待待处理检查:轮询状态检查直到全部达到终态。GitHub 轮询 statusCheckRollup;GitLab 轮询 pipelines;Perforce 无内置 CI,若使用外部系统则检查相应系统,否则直接分析。
  • 要求新鲜的 Greptile 评审:对 GitHub,要求存在与当前 headRefOid 关联的已完成且结论为 success/neutral 的 Greptile check-run;否则阻塞。对 GitLab,要求与当前 head SHA 关联的成功 Greptile job 或干净的 Greptile note。对 Perforce,要求与当前 shelved 修订关联的 Greptile 结果。
  • 分析 PR/MR:评估状态检查、描述完整性、评审评论(包括机器人评论)、一般评论。
  • 分类问题:分为 Actionable(需要代码修改)、Informational(无需修改)、Already addressed(已被后续提交解决)。
  • 报告发现:以表格形式呈现区域、问题、状态、所需操作。
  • 修复问题(如请求):切换到分支或打开正确 CL,询问用户是否修复,然后提交并推送(GitHub/GitLab)或重新 shelve(Perforce)。
  • 解决评审线程:GitHub 通过 GraphQL 获取未解决线程并批量解决;GitLab 逐个解决 discussions;Perforce 无原生解决线程概念,通过更新 CL 描述或在评审工具中回复来标记已处理。
  • 处理多个 PR/MR/CL:按顺序处理。

使用方式

该技能以指令形式提供,包含各平台的具体命令。使用时需具备相应 CLI 工具(gh、glab、p4)及权限。输入可选 PR/MR/CL 编号,也可通过 --vcs 覆盖平台检测。执行流程包括:检测平台、识别编号、获取详情、等待检查、验证 Greptile 新鲜度、分析、分类、报告、修复、解决线程。

适用场景

  • 需要检查 PR/MR/CL 的评审评论和 CI 状态时。
  • 需要修复评审反馈并推送更新时。
  • 需要确保 Greptile 评审针对当前 head 且干净时。
  • 需要批量处理多个评审请求时。

限制

  • Perforce 没有内置 CI 检查,需依赖外部系统或直接分析。
  • Perforce 没有原生“解决线程”概念,需通过更新描述或评审工具回复来标记。
  • Greptile 新鲜度要求严格:若没有与当前 head 关联的已完成干净评审,则阻塞完成。
  • 需要相应平台的 CLI 工具和访问权限。
  • 具体收费、价格、平台支持细节暂未提供。