cnb-rs repo pin
cnb-rs repo pin <list|set> [flags]管理仓库墙(置顶仓库)。支持查看用户/组织的仓库墙,以及设置组织的仓库墙。
子命令
pin list
cnb-rs repo pin list [<owner>]列出用户或组织的置顶仓库。不指定 owner 时,列出当前认证用户的仓库墙。
[<owner>]: 用户名或组织名(可选)
pin set
cnb-rs repo pin set --group <GROUP> <repos...>设置组织的仓库墙。传入的仓库路径列表将替换现有的仓库墙。
<repos...>: 要置顶的仓库路径列表(必填,可多个)-g, --group <GROUP>: 目标组织(必填)
继承的全局选项:
--json: 以 JSON 格式输出(适用于 list)--domain <DOMAIN>: 指定目标域名(默认:cnb.cool)
示例
bash
# 查看当前用户的仓库墙
$ cnb-rs repo pin list
Showing 3 pinned repos in alice
REPO DESCRIPTION STAR LANG
alice/proj-a My main project 12 Rust
...
# 查看组织的仓库墙。owner 不区分用户 / 组织;CLI 先当作组织查 404 后降级为用户
$ cnb-rs repo pin list my-org
Showing 6 pinned repos in my-org
...
# 查看指定用户的仓库墙
$ cnb-rs repo pin list octocat
# 设置组织仓库墙
$ cnb-rs repo pin set --group my-org my-org/repo1 my-org/repo2 my-org/repo3
✓ 已更新 my-org 的仓库墙(共 3 个仓库)
# JSON 输出原始 API 响应(`Repos4User` 或 `Repos4UserBase` 数组)
$ cnb-rs repo pin list --json表格列设计
与 repo list / issue list / pr list 同款:
| 列 | 类型 | 说明 |
|---|---|---|
REPO | Column::flex(20) | 完整仓库路径,依内容拉伸 |
DESCRIPTION | Column::flex(20) | 仓库描述,依内容拉伸,不手动截断 |
STAR | Column::fixed(6) | star 数量 |
LANG | Column::fixed(10) | 主要语言 |
header 行:Showing N pinned repos in {scope},scope 为 --owner 参数或当前用户名。以 stderr 输出,不干扰 stdout 的表格或 JSON。
JSON 输出格式
--json 输出原始 API 响应 :
pin list <group>:Vec<Repos4UserBase>,与GetPinnedRepoByGroup返回完全一致pin list [<user>]:Vec<Repos4User>,与GetPinnedRepoByID返回完全一致
之前输出是 4 元组 (path, description, star, lang),会丢起始时间 / 可见性 / topics 等字段;P0-5 修复后返回完整原始类型。
API
| 场景 | API | 方法 | 说明 |
|---|---|---|---|
| 获取组织仓库墙 | ${CNB_API_ENDPOINT}/{slug}/-/pinned-repos | GET | 组织置顶仓库 |
| 获取用户仓库墙 | ${CNB_API_ENDPOINT}/users/{username}/pinned-repos | GET | 用户置顶仓库 |
| 设置组织仓库墙 | ${CNB_API_ENDPOINT}/{slug}/-/pinned-repos | PUT | 更新组织仓库墙 |
API 详情(OpenAPI):
GetPinnedRepoByGroup— 权限:group-manage:rGetPinnedRepoByID— 权限:account-engage:rSetPinnedRepoByGroup— 权限:group-manage:rw