feat(skills): add gitlink-branch Skill

- 从 gitlink-repo/references/ 提取 branch 命令,整合为独立 Skill
- 覆盖 branch +list/+create/+delete/+protect 四个命令
- 含 examples/branch-workflow.md 端到端工作流
- 更新 skills/README.md 表格补上 branch +delete
This commit is contained in:
wbtiger 2026-05-17 12:03:34 +08:00
parent a560dfc982
commit a3b710268e
3 changed files with 208 additions and 1 deletions

View File

@ -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

View File

@ -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 +createWrite Operation
> [!CAUTION]
> This is a **Write Operation** — confirm user intent.
1. 确认用户希望创建的分支名称和源分支。
2. 执行 `branch +create --name <name> --from <source>`
3. 输出创建结果。
### branch +deleteDestructive Operation
> [!CAUTION]
> This is a **Destructive Operation** — confirm user intent.
1. 确认用户确实希望删除该分支(此操作不可逆)。
2. 执行 `branch +delete --name <name>`
3. 输出删除结果。
### branch +protectWrite Operation
> [!CAUTION]
> This is a **Write Operation** — confirm user intent.
1. 确认用户希望保护的分支名称。
2. 执行 `branch +protect --name <name>`
3. 输出设置结果。
## References
- [gitlink-shared](../gitlink-shared/SKILL.md) — 认证、全局参数、安全规则

View File

@ -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` 先查看分支状态,再执行写入/删除操作