---
name: gitlink-repo
version: 2.0.0
description: "仓库全生命周期管理：创建/查看/Fork/删除/更新仓库、成员管理（邀请/移除/查看）、批量操作（创建/更新/邀请/移除）。当用户需要操作 GitLink 仓库时触发。"
metadata:
  requires:
    bins: ["gitlink-cli"]
  cliHelp: "gitlink-cli repo --help"
---

# gitlink-repo（仓库操作）

**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 | 说明 | 需要认证 |
|----------|------|----------|
| `repo +list` | 仓库列表（`--user` 指定用户） | 否（公开项目） |
| `repo +info` | 仓库详情 | 否（公开项目） |
| `repo +members` | 仓库成员列表（`--page`、`--limit` 分页） | 否（公开项目） |

### 单个操作

| Shortcut | 说明 | 需要认证 |
|----------|------|----------|
| `repo +create` | 创建仓库（`--name`、`--description`、`--private`） | 是 |
| `repo +fork` | Fork 仓库 | 是 |
| `repo +delete` | 删除仓库（⚠️ 不可逆） | 是 |
| `repo +update` | 更新仓库设置（`--description`、`--private`） | 是 |
| `repo +invite` | 邀请成员（`--user-id`） | 是 |
| `repo +remove-member` | 移除成员（`--user-id`） | 是 |

### 批量操作

| Shortcut | 说明 | 支持 dry-run |
|----------|------|-------------|
| `repo +batch-create` | 批量创建仓库（`--names` 逗号分隔 或 `--from CSV`） | ✅ |
| `repo +batch-update` | 批量更新仓库设置（`--description`、`--private`/`--public`） | ✅ |
| `repo +batch-invite` | 批量邀请成员（`--users` 逗号分隔 或 `--from CSV`） | ✅ |
| `repo +batch-remove` | 批量移除成员（`--users` 逗号分隔 或 `--from CSV`） | ✅ |

> 批量操作均支持 `--names repo-a,repo-b` 或 `--users 1,2,3` 或 `--from file.csv` 三种输入方式。

## 使用示例

```bash
# === 查询 ===
# 查看仓库信息
gitlink-cli repo +info --owner Gitlink --repo forgeplus
# 列出用户仓库
gitlink-cli repo +list --user zhangsan
# 查看成员
gitlink-cli repo +members --owner myuser --repo myrepo

# === 单个操作 ===
# 创建仓库
gitlink-cli repo +create --name my-project --description "项目描述"
# 创建私有仓库
gitlink-cli repo +create --name my-project --private
# Fork 仓库
gitlink-cli repo +fork --owner Gitlink --repo forgeplus
# 更新仓库设置
gitlink-cli repo +update --owner myuser --repo myrepo --description "新描述"
gitlink-cli repo +update --owner myuser --repo myrepo --private true
# 邀请/移除成员
gitlink-cli repo +invite --owner myuser --repo myrepo --user-id 12345
gitlink-cli repo +remove-member --owner myuser --repo myrepo --user-id 12345
# 删除仓库（⚠️ 不可逆，务必确认）
gitlink-cli repo +delete --owner myuser --repo old-project

# === 批量操作 ===
# 批量创建
gitlink-cli repo +batch-create --names repo-a,repo-b,repo-c --private
# 批量更新（先 dry-run 预览）
gitlink-cli repo +batch-update --names repo-a,repo-b --description "批量更新描述" --dry-run
gitlink-cli repo +batch-update --names repo-a,repo-b --description "批量更新描述"
# 批量管理成员
gitlink-cli repo +batch-invite --users 111,222,333 --dry-run
gitlink-cli repo +batch-remove --users 111,222 --dry-run
```

## Raw API 补充

Shortcuts 未覆盖的仓库操作可用 Raw API：

```bash
# 获取 README
gitlink-cli api GET /:owner/:repo/readme

# 获取贡献者列表
gitlink-cli api GET /:owner/:repo/contributors

# 获取语言统计
gitlink-cli api GET /:owner/:repo/languages

# 获取提交列表
gitlink-cli api GET /:owner/:repo/commits --query 'page=1&limit=20'

# 获取标签列表
gitlink-cli api GET /:owner/:repo/tags

# 获取文件内容
gitlink-cli api GET /:owner/:repo/raw/main/README.md
```

## 注意事项

- `repo +delete` 是不可逆操作，执行前必须确认用户意图
- 创建仓库默认为公开，使用 `--private true` 创建私有仓库
