SuperAPI AI 工具集

list-open-work

编程与开发

查看项目

更新于 10-16 03:13

技能介绍

用途:回答“当前仓库里我有哪些未合并的 MR/PR,各自对应哪个工单”。先给出列表,再补充其他说明。

范围:仅限当前所在的 git 检出(worktree 或主仓库),读取其 origin,列出针对该远程的本人未合并 MR/PR。若不是 git 仓库则直接说明并停止,不查找其他项目,也不凭记忆列出其他 origin、组织、forge 或 tracker。

工单键推断:从本仓库的分支或标题中推断,例如 feat/PROJ-123-slug 中的 PROJ-123,不重用别处见过的前缀。可用 git rev-parse --show-toplevel 与 git remote get-url origin 辅助。

输出格式:直接以普通渲染 markdown 写入聊天,不要用代码围栏,保证链接可点击。每项之间空一行,否则会合并成一段。标题为 Open MRs: 或 Open PRs:,无项目符号、无 emoji。数字与工单键均为链接,工单放在末尾 [KEY]。按编号降序,GitLab 用 !N,GitHub 用 #N。每段形如 <!|#><N> - <title> [<KEY>],不加粗。无工单则省略 [KEY],不编造。标题保持原样,仅移动被埋在中部的工单键。

收集:本人指由我创建。通过 API 解析用户名,不猜测。GitLab 用 glab api user 与 glab api "projects/<url-encoded-path>/merge_requests?state=opened&scope=all&per_page=100" 后按作者过滤;GitHub 用 gh pr list --author @me --state open --json number,title,headRefName,body。工单取标题、分支、描述中首个 \b[A-Z][A-Z0-9]+-\d+\b。

补充说明仅写会改变下一步行动的内容:与默认分支冲突(需 rebase,GitLab 需强制读取 merge_status,cannot_be_merged + has_conflicts 表示需 rebase,diverged_commits_count 表示落后多少)、红色流水线、工单状态与 MR 矛盾、无工单且陈旧(给出年龄并提议关闭)。除非被要求,跳过审批信息,不叙述无变化的字段。