SuperAPI AI 工具集

ship

通用与其它

查看项目

更新于 10-16 01:15

技能介绍

用途:ship 用于把已实现的工单收尾成一个可合并的 PR。一次 ship 运行的结果是一个 CI 通过的 PR URL,或三种停下的情况之一,或一次明确报出的失败,不会以提问或沉默结束。

三种停下:当前在默认分支(git rev-parse --abbrev-ref HEAD),说明工作本应在分支上进行并停止;该分支已有打开的 PR,仍然照常推送并在其 URL 上更新,不再开第二个 PR;出现无法从 diff 判断意图的冲突。普通冲突不属于停下,应解决后继续。

主要流程:先落实基分支(打开中的 PR 用 gh pr view --json baseRefName -q .baseRefName,否则为仓库默认分支或所堆叠的分支),执行 git fetch origin、git merge origin/<base>;冲突时调用 resolving-merge-conflicts 技能,未安装则在 PR 正文中说明并据 diff 解决,随后 git merge --continue。产生合并提交后、推送前重跑门禁。推送前检查门禁、界面变更状态、遗留调试代码,并用 gh issue view <N> --json state,stateReason 确认工单是否仍打开。

推送与开 PR:推送用 ARGO_SHIP=1 git push -u origin HEAD;创建 PR 写为 ARGO_SHIP=1 gh pr create --base <base> --title "..." --body-file <path>,正文先落盘为仓库外的临时文件,不能经参数或 stdin 传入。标题和正文经过 simple-english 技能,只改风格、保留全部事实。工单在工作期间被关闭时改为草稿、去掉 Closes 行并在正文说明。开完后用 gh pr view <url> --json body -q .body | wc -c 与文件字节数比对,正文为空或不足一半时用 gh pr edit <url> --body-file <path> 修复。之后用 gh pr checks <url> --watch --interval 10 观察到结论,必需检查通过前不得报告已交付。

限制:合并由人完成,本仓库不代为合并;未跑评审的 diff 需在正文标注;无门禁时在正文写一行说明后照常开 PR;GitHub 故障、runner 网络失败、缺少密钥或外部服务不可用不算代码失败,重跑一次后仍失败需报告 PR URL 及检查名、证据和外部阻塞。资料未提供的细节暂未说明。