用途:Greploop 用于自动迭代改进代码评审,反复修复 GitHub PR、GitLab MR 或 Perforce 搁置变更列表(CL),直到 Greptile 给出 5/5 置信度且零未解决评论。
主要能力:自动检测平台(优先 Perforce,其次根据 git remote 判断 GitLab/GitHub,可用 --vcs 覆盖);识别 PR/MR/CL(可选传入编号,否则检测当前分支或默认待处理 CL);触发 Greptile 评审并轮询检查运行或流水线作业完成;从 PR/MR/CL 描述、评论、评审中解析置信度分数与未解决评论;修复可操作评论并解决线程;提交推送或重新搁置后进入下一轮。
使用方式:输入 PR/MR/CL 编号(可选)与 --max-iterations N(可选,默认 10,用于限制评审-修复-推送循环次数)。循环中先推送或搁置变更,等待检查启动,若 Greptile 未运行则发触发评论,轮询完成;随后抓取评审结果,检查退出条件(5/5 且零未解决评论,或达到最大迭代次数);对每条未解决评论判断是否可操作,修复后解决线程,再提交推送或重新搁置,回到触发步骤。
适用场景:需要在合并前让 Greptile 评审达到满分且无遗留评论的 PR/MR/CL;大型变更可提高 --max-iterations 以处理持续出现的新发现,降低该值可控制成本。
限制:Perforce 无原生检查运行,需依赖 webhook 或仪表盘轮询;GitLab 无批量解决讨论,需逐个处理;轮询超时(约 10 分钟)会停止工作流并报告,不继续使用过期或缺失的评审结果;Greptile 机器人用户名可能因安装而异,首次运行需确认。