From a3b710268e1477606ab5a973f47d3b8d3e53f44c Mon Sep 17 00:00:00 2001 From: wbtiger <28288271@qq.com> Date: Sun, 17 May 2026 12:03:34 +0800 Subject: [PATCH] feat(skills): add gitlink-branch Skill MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 从 gitlink-repo/references/ 提取 branch 命令,整合为独立 Skill - 覆盖 branch +list/+create/+delete/+protect 四个命令 - 含 examples/branch-workflow.md 端到端工作流 - 更新 skills/README.md 表格补上 branch +delete --- skills/README.md | 2 +- skills/gitlink-branch/SKILL.md | 139 ++++++++++++++++++ .../examples/branch-workflow.md | 68 +++++++++ 3 files changed, 208 insertions(+), 1 deletion(-) create mode 100644 skills/gitlink-branch/SKILL.md create mode 100644 skills/gitlink-branch/examples/branch-workflow.md diff --git a/skills/README.md b/skills/README.md index 3f09e10..2786e1d 100644 --- a/skills/README.md +++ b/skills/README.md @@ -124,7 +124,7 @@ skills/ | **gitlink-repo** | 仓库管理 | `repo +list`, `repo +create`, `repo +info`, `repo +fork` | | **gitlink-issue** | Issue 管理 | `issue +create`, `issue +list`, `issue +view`, `issue +close`, `issue +batch-close` | | **gitlink-pr** | Pull Request | `pr +list`, `pr +create`, `pr +view`, `pr +merge`, `pr +review` | -| **gitlink-branch** | 分支管理 | `branch +list`, `branch +create`, `branch +protect` | +| **gitlink-branch** | 分支管理 | `branch +list`, `branch +create`, `branch +delete`, `branch +protect` | | **gitlink-release** | 版本发布 | `release +list`, `release +create`, `release +view` | ### 辅助 Skills diff --git a/skills/gitlink-branch/SKILL.md b/skills/gitlink-branch/SKILL.md new file mode 100644 index 0000000..e962ce7 --- /dev/null +++ b/skills/gitlink-branch/SKILL.md @@ -0,0 +1,139 @@ +--- +name: gitlink-branch +version: 1.0.0 +description: "分支管理:创建、查看、删除、保护分支。当用户需要操作 GitLink 分支时触发。" +metadata: + requires: + bins: ["gitlink-cli"] + cliHelp: "gitlink-cli branch --help" +--- + +# gitlink-branch(分支操作) + +**CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),其中包含认证、权限处理和 API 注意事项。** +**CRITICAL — 所有 Shortcuts 在执行写入/删除操作前,务必先确认用户意图。** +**CRITICAL — GitLink 操作只能用 `gitlink-cli`。禁止用 `gh`(GitHub CLI)操作 GitLink 资源。`gh` 仅适用于 GitHub 平台。** + +> **前置条件:** 先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md) + +## Shortcuts + +| Shortcut | 说明 | 操作类型 | +|----------|------|----------| +| `branch +list` | 列出仓库的所有分支 | Read | +| `branch +create` | 创建新分支 | ⚠️ Write Operation | +| `branch +delete` | 删除分支 | 🔴 Destructive Operation | +| `branch +protect` | 设置分支保护规则 | ⚠️ Write Operation | + +## 参数参考 + +### branch +list + +| 参数 | 必填 | 说明 | +|------|------|------| +| `--owner` | 是* | 仓库所有者(可从 git remote 自动推断) | +| `--repo` | 是* | 仓库名称(可从 git remote 自动推断) | +| `--page, -p` | 否 | 页码(默认 `1`) | +| `--limit, -l` | 否 | 每页条数(默认 `20`) | +| `--format` | 否 | 输出格式:`json`/`table`/`yaml` | +| `--debug` | 否 | 启用调试输出 | + +### branch +create + +| 参数 | 必填 | 说明 | +|------|------|------| +| `--name, -n` | 是 | 新分支名称 | +| `--from, -f` | 否 | 源分支或 commit(默认 `master`) | +| `--owner` | 是* | 仓库所有者(可从 git remote 自动推断) | +| `--repo` | 是* | 仓库名称(可从 git remote 自动推断) | +| `--format` | 否 | 输出格式:`json`/`table`/`yaml` | +| `--debug` | 否 | 启用调试输出 | + +### branch +delete + +| 参数 | 必填 | 说明 | +|------|------|------| +| `--name, -n` | 是 | 要删除的分支名称 | +| `--owner` | 是* | 仓库所有者(可从 git remote 自动推断) | +| `--repo` | 是* | 仓库名称(可从 git remote 自动推断) | +| `--format` | 否 | 输出格式:`json`/`table`/`yaml` | +| `--debug` | 否 | 启用调试输出 | + +### branch +protect + +| 参数 | 必填 | 说明 | +|------|------|------| +| `--name, -n` | 是 | 要保护的分支名称 | +| `--owner` | 是* | 仓库所有者(可从 git remote 自动推断) | +| `--repo` | 是* | 仓库名称(可从 git remote 自动推断) | +| `--format` | 否 | 输出格式:`json`/`table`/`yaml` | +| `--debug` | 否 | 启用调试输出 | + +> *如果在 GitLink 仓库目录下执行,`--owner` 和 `--repo` 可自动推断。 + +## 使用示例 + +```bash +# 列出当前仓库的分支 +gitlink-cli branch +list + +# 指定仓库并分页 +gitlink-cli branch +list --owner Gitlink --repo forgeplus --page 1 --limit 10 + +# 输出为 JSON +gitlink-cli branch +list --format json + +# 从 master 创建分支 +gitlink-cli branch +create --name feature/new-feature + +# 从指定分支创建 +gitlink-cli branch +create --name hotfix/bug-123 --from develop + +# 指定仓库创建分支 +gitlink-cli branch +create --name feature/x --owner someone --repo myrepo + +# 删除分支 +gitlink-cli branch +delete --name feature/old-feature + +# 指定仓库删除分支 +gitlink-cli branch +delete --name feature/old-feature --owner someone --repo myrepo + +# 保护分支 +gitlink-cli branch +protect --name main + +# 指定仓库保护分支 +gitlink-cli branch +protect --name main --owner someone --repo myrepo +``` + +## Workflow 注意事项 + +### branch +create(Write Operation) + +> [!CAUTION] +> This is a **Write Operation** — confirm user intent. + +1. 确认用户希望创建的分支名称和源分支。 +2. 执行 `branch +create --name --from `。 +3. 输出创建结果。 + +### branch +delete(Destructive Operation) + +> [!CAUTION] +> This is a **Destructive Operation** — confirm user intent. + +1. 确认用户确实希望删除该分支(此操作不可逆)。 +2. 执行 `branch +delete --name `。 +3. 输出删除结果。 + +### branch +protect(Write Operation) + +> [!CAUTION] +> This is a **Write Operation** — confirm user intent. + +1. 确认用户希望保护的分支名称。 +2. 执行 `branch +protect --name `。 +3. 输出设置结果。 + +## References + +- [gitlink-shared](../gitlink-shared/SKILL.md) — 认证、全局参数、安全规则 diff --git a/skills/gitlink-branch/examples/branch-workflow.md b/skills/gitlink-branch/examples/branch-workflow.md new file mode 100644 index 0000000..4311151 --- /dev/null +++ b/skills/gitlink-branch/examples/branch-workflow.md @@ -0,0 +1,68 @@ +# 分支管理完整工作流 + +本示例演示一个完整的分支管理流程:查看分支 → 创建分支 → 开发推送 → 保护分支 → 清理旧分支。 + +## 场景描述 + +你正在维护一个 GitLink 仓库,需要开发一个新功能。开发完成后需要保护主分支,并清理已完成的功能分支。 + +## 步骤 + +### 1. 查看当前所有分支 + +```bash +gitlink-cli branch +list +``` + +输出示例: +``` +Branch Protected +master Yes +develop No +feature/old-login No +``` + +### 2. 创建新功能分支 + +```bash +gitlink-cli branch +create --name feature/new-auth --from develop +``` + +输出确认分支创建成功。 + +### 3. 本地开发并推送 + +```bash +git checkout -b feature/new-auth +# ... 编写代码 ... +git add . +git commit -m "feat: add new auth module" +git push gitlink feature/new-auth +``` + +### 4. 创建 PR 并合并 + +通过 `gitlink-cli pr +create` 创建 PR,审查后合并。合并后,功能分支 `feature/new-auth` 将自动删除(取决于仓库设置)。 + +### 5. 保护主分支 + +确保 `master` 分支有保护规则,防止误删或直接推送: + +```bash +gitlink-cli branch +protect --name master +``` + +### 6. 清理旧分支(可选) + +开发完成后,删除不再需要的旧分支: + +```bash +# 确认旧分支已合并或无保留价值后 +gitlink-cli branch +delete --name feature/old-login +``` + +## 注意事项 + +- `branch +delete` 是 **Destructive Operation**,操作前请确认分支内容已合并或无保留价值 +- `branch +protect` 会对分支施加保护规则,影响后续的推送和合并流程 +- 建议使用 `branch +list` 先查看分支状态,再执行写入/删除操作