gitlink-cli/examples/workflows/gitlink-ops-platform/skills/gitlink-multi-repo-sync/SKILL.md

5.2 KiB
Raw Blame History

name version description metadata
gitlink-multi-repo-sync 1.0.0 多仓库协同编排:循环遍历多个仓库,依次调用 gitlink-issue + gitlink-pr + gitlink-release 采集各仓库 Issue/PR/Release 状态,汇总成跨仓库协同看板,并给出协调建议。当用户需要统一跟踪多个仓库进展、做跨仓库 Issue/PR/Release 协调时触发。
requires cliHelp
bins
gitlink-cli
gitlink-cli issue --help

gitlink-multi-repo-sync多仓库协同 · 编排 Skill

CRITICAL — 开始前先阅读任务二的 gitlink-shared/SKILL.md认证、权限、API 注意事项)。 CRITICAL — 本工作流为只读采集,不写入任何仓库(纯统计汇总)。 CRITICAL — GitLink 操作只能用 gitlink-cli。禁止用 ghGitHub CLI操作 GitLink 资源。

定位:本 Skill 是"总指挥"编排 Skill循环调用 issue / pr / release 三个子 Skill跨多个仓库采集数据输出统一的协同看板 + 协调建议。解决 PDF 场景"跨多个仓库的统一 Issue 追踪、PR 状态看板、Release 协调发布"。


编排架构

gitlink-multi-repo-sync
  ├── 对每个仓库 <repo> 循环:
  │   ├── Skill("gitlink-issue")     采集 Issue 统计(开放/关闭/未分类)
  │   ├── Skill("gitlink-pr")        采集 PR 状态(开放/已合并)
  │   └── Skill("gitlink-release")   采集 Release版本数/最新版)
  └── 汇总:跨仓库协同看板 + 协调建议

子 Skill 依赖

子 Skill 用途 写入
gitlink-issue 各仓库 Issue 统计(开放/关闭/未分类)
gitlink-pr 各仓库 PR 状态(开放/已合并)
gitlink-release 各仓库 Release数量/最新版本)

串联满足 PDF「≥3 命令/Skill 串联」要求3 个子 Skill × N 个仓库。


前置:收集参数

参数 说明 示例
owner 所有者(通常多仓库同属一个 owner ylly
repos 仓库列表逗号分隔2-5 个) gitlink-cli,gitlink-help-center,demo-repo

若用户未指定仓库,先用 repo +list 列出该 owner 名下仓库,取前 3 个。


工作流

Step 1遍历仓库采集 Issue

→ 对每个 <repo> 调用 Skill("gitlink-issue", args="列出 <owner>/<repo> 的 Issue 统计开放数、关闭数、未分类数tags 为空)。只读。")

关键命令(每个仓库执行一次):

gitlink-cli issue +list --owner <o> --repo <r> --state open --format json    # opened_count
gitlink-cli issue +list --owner <o> --repo <r> --state closed --format json  # closed_count

记录每个仓库的 open / closed / 未分类数。

Step 2采集 PR 状态

→ 对每个 <repo> 调用 Skill("gitlink-pr", args="列出 <owner>/<repo> 的 PR开放数、已合并数。只读。")

gitlink-cli pr +list --owner <o> --repo <r> --format json

记录每个仓库的 PR 开放 / 合并数。

Step 3采集 Release

→ 对每个 <repo> 调用 Skill("gitlink-release", args="列出 <owner>/<repo> 的 Release取最新版本号。只读。")

gitlink-cli release +list --owner <o> --repo <r> --format json

记录每个仓库的 Release 数 + 最新版本。

Step 4汇总跨仓库协同看板

AI 汇总所有仓库数据,输出协同看板 + 协调建议(哪个仓库积压、哪个可协调发版等)。


最终输出

## 🔗 跨仓库协同看板 — <owner>

| 仓库 | 开放Issue | 关闭Issue | 未分类 | PR(开/合) | 最新Release | 状态 |
|------|:--------:|:--------:|:------:|:---------:|:----------:|:----:|
| gitlink-cli | 10 | 6 | 7 | 0/2 | v0.2.0-beta | 🟡 积压 |
| help-center | 5 | 20 | 1 | 1/5 | v1.0 | 🟢 活跃 |
| demo-repo | 0 | 0 | 0 | 0/0 | 无 | ⚪ 空仓 |

### 🎯 协同建议
1. **gitlink-cli** Issue 积压 + 半数未分类 → 建议联动 `gitlink-health-doctor` 治理
2. **help-center** 发版活跃 → 可与 gitlink-cli 协调统一发版节奏
3. **demo-repo** 空仓 → 建议初始化(联动 `gitlink-project-bootstrap`)或归档

这条输出体现了任务三"三件套协同"multi-repo 发现问题 → 引导用 health-doctor / project-bootstrap 解决。


关键避坑(实测提炼)

解决
循环多仓库时 API 频率限制 仓库间适当间隔;仓库数控制在 3-5 个
某仓库无权限 / 不存在 try-catch 跳过,在看板标注"无权限/不存在"
pr +list --state 过滤不精确 客户端按 pull_request_status 字段二次判断0=open,1=merged,2=closed
issue +list 返回数组含已关闭 客户端按 status.id 二次过滤1=开放)
fork 仓库 PR/Release 为 0 属正常fork 无独立 PR/发版),看板如实展示

实测落地参考

⚠️ 数据准备:需 owner 名下 2-3 个仓库。若 ylly 账号下仓库不足,可新建 1-2 个测试仓库(或用 gitlink-project-bootstrap 自动创建)。

实测时遍历 ylly/gitlink-cli + 其他仓库,输出跨仓库看板,给出协同建议(联动 health-doctor / project-bootstrap