跳转到内容

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 列) ​

列宽度说明
NUMBERfixed 7#42
TITLEflex 20标题(content-aware,按数据自然宽度)
STATEfixed 8open / closed / merged;强制合并显示 merged!
LABELSflex 6标签 name 逗号分隔;空时 -
UPDATEDfixed 14相对时间,如「约 2 小时前」
RELATIONfixed 8ME-> / ->ME / ME->ME

filter / 编号模式(5 列) ​

列宽度说明
NUMBERfixed 7#42
TITLEflex 20同上
STATEfixed 8open / closed / merged;filter 模式的强制合并显示 merged!
LABELSflex 6同上
UPDATEDfixed 14同上

API 调用 ​

模式API说明
默认list_pulls × 2(authors=me + reviewers=me)tokio::join! 并发
filterlist_pulls × 1(authors=X 或 reviewers=Y)单次调用
编号list_pulls_by_numbers × 1(n=NUMBER,...)单次批量调用,最多 50 个编号

--label / --base-ref / --sort / --limit 在默认和 filter 模式生效,透传给 API。

另请参阅 ​

Released under the MIT License.