cnb-rs pr list
cnb-rs pr list [flags]列出 Pull Request。默认显示与当前用户相关的(我提的 + 让我评审的);可通过 --author / --reviewer 切换到 filter 模式查任意条件,也可通过 --numbers 按编号批量查询。
三种模式
默认模式(不传 --author/--reviewer)
并发查两类 PR 合并显示,STATE 列显示 PR 状态,RELATION 列标记关系:
ME->:我提的(authors=me)->ME:让我评审的(reviewers=me)ME->ME:既是我提的又要我评审
filter 模式(指定 --author 或 --reviewer)
直接按指定条件查询,保留 STATE(不同状态的 PR 可能混在一起),不显示 RELATION。默认模式和 filter 模式都以 merged 表示普通合并、merged! 表示强制合并;is_merged 缺失时回退判断 mergeable_state == "merged"。
编号模式(指定 --numbers)
按逗号分隔的编号批量查询,最多 50 个编号,允许重复。该模式显示与 filter 模式相同的 5 列;JSON 输出为完整 PullRequestInfo[]。--numbers 与状态、作者、评审人、标签、目标分支、排序和数量限制选项互斥。
选项
--numbers <NUMBER,...>:按编号批量查询(逗号分隔,最多 50 个)-s, --state <STATE>:状态过滤(open/closed/all),默认open--author <USERNAME>:按作者过滤;切换到 filter 模式--reviewer <USERNAME>:按评审人过滤;切换到 filter 模式-l, --label <LABELS>:按标签过滤(逗号分隔)-B, --base-ref <BRANCH>:按目标分支过滤(如main)--sort <FIELD>:排序字段(如-created_at/-updated_at)- 注意:以
-开头的值会被 clap 当成 flag;用--sort=-created_at等号形式
- 注意:以
-L, --limit <N>:最大数量(默认 30,CNB 上限 100)
继承的全局选项:
--repo <REPO>:指定仓库路径(格式:group/repo)--json:以 JSON 格式输出;默认和 filter 模式为PullRequest[],编号模式为PullRequestInfo[]--domain <DOMAIN>:指定目标域名(默认:cnb.cool)
示例
bash
# 与我相关的所有 PR(最多 30 条)
$ cnb-rs pr list -s all
Showing 3 all pulls in wwvo/cnb-rs/cnb-rs
NUMBER TITLE STATE LABELS UPDATED RELATION
#287 feat: add foo open bug 约 2 小时前 ME->
#290 fix: bar open - 约 1 天前 ->ME
#295 refactor: baz merged! test 约 3 天前 ME->ME
# 看 closed 的(限 5 条)
$ cnb-rs pr list -s closed -L 5
# 看所有人提到 main 的 PR
$ cnb-rs pr list --reviewer "@me" -B main
# 按某作者过滤(filter 模式,多 STATE 列)
$ cnb-rs pr list -s all --author alice -L 5
# 按时间倒序(注意等号形式)
$ cnb-rs pr list -s all --sort=-created_at -L 10
# 按编号批量查询
$ cnb-rs pr list --numbers 298,270,318
# JSON 给脚本消费
$ cnb-rs --json pr list --numbers 298,270,318 | jq '.[].number'列设计
默认模式(6 列)
| 列 | 宽度 | 说明 |
|---|---|---|
| NUMBER | fixed 7 | #42 |
| TITLE | flex 20 | 标题(content-aware,按数据自然宽度) |
| STATE | fixed 8 | open / closed / merged;强制合并显示 merged! |
| LABELS | flex 6 | 标签 name 逗号分隔;空时 - |
| UPDATED | fixed 14 | 相对时间,如「约 2 小时前」 |
| RELATION | fixed 8 | ME-> / ->ME / ME->ME |
filter / 编号模式(5 列)
| 列 | 宽度 | 说明 |
|---|---|---|
| NUMBER | fixed 7 | #42 |
| TITLE | flex 20 | 同上 |
| STATE | fixed 8 | open / closed / merged;filter 模式的强制合并显示 merged! |
| LABELS | flex 6 | 同上 |
| UPDATED | fixed 14 | 同上 |
API 调用
| 模式 | API | 说明 |
|---|---|---|
| 默认 | list_pulls × 2(authors=me + reviewers=me) | tokio::join! 并发 |
| filter | list_pulls × 1(authors=X 或 reviewers=Y) | 单次调用 |
| 编号 | list_pulls_by_numbers × 1(n=NUMBER,...) | 单次批量调用,最多 50 个编号 |
--label / --base-ref / --sort / --limit 在默认和 filter 模式生效,透传给 API。