跳转到内容

cnb-rs issue list ​

cnb-rs issue list [flags]

列出仓库的 Issue。

默认列出状态为 open 的 Issue,支持通过多种条件过滤和排序。传入 --closed-after 或 --closed-before 且未显式指定状态时,会提示并自动使用 closed;显式指定 -s open 时则报错。

--numbers 按编号批量查询,支持逗号分隔或重复传入,一次最多 100 个编号。编号模式与状态、关键词、优先级、标签、创建者、处理人、时间、排序、数量及陈旧过滤选项互斥,可与 --wide 组合,并复用普通列表的表格列。

关闭时间和更新时间过滤参数使用 YYYY-MM-DD 格式。由于上游当前忽略 close_time_begin,--closed-after 会分页拉取并在客户端按 closed_at >= DATE 00:00Z 过滤,直到达到 -L 或页面耗尽;--closed-before 仍由服务端过滤。

输出表格采用 content-aware 自适应列宽,贴近 gh issue list 风格:

  • 默认 4 列:ID / TITLE / LABELS / UPDATED,时间以「约 N 天前」相对格式呈现,更符合 issue 列表浏览的常见信息密度
  • -w, --wide 模式 8 列:在默认列基础上追加 PRIORITY / AUTHOR / CLOSED / STALE(不活跃天数);CLOSED 与 UPDATED 使用相同的相对时间格式,未关闭时显示 -

TITLE 和 LABELS 是弹性列,会按数据自然宽度和终端可用宽度自动分配空间;列宽溢出终端时按比例缩减,最终输出严格不会 wrap。

选项 ​

  • --numbers <NUMBER,...>: 按编号批量查询,可用逗号分隔或重复传入(最多 100 个)
  • -s, --state <STATE>: 状态过滤,可选值:open、closed(默认:open)
  • -k, --keyword <KEYWORD>: 关键词搜索,匹配 Issue 标题和描述
  • -p, --priority <PRIORITY>: 优先级过滤,如 P0、P1(多个用逗号分隔)
  • -l, --labels <LABELS>: 标签过滤(多个用逗号分隔)
  • --author <AUTHOR>: 创建者用户名过滤
  • -a, --assignee <ASSIGNEE>: 处理人过滤(- 表示未分配)
  • --closed-after <DATE>: 客户端过滤,只列出关闭时间不早于指定日期 00:00Z 的 Issue;未显式指定状态时自动使用 closed
  • --closed-before <DATE>: 服务端过滤,只列出在指定日期之前关闭的 Issue;未显式指定状态时自动使用 closed
  • --updated-after <DATE>: 只列出在指定日期之后更新的 Issue
  • --updated-before <DATE>: 只列出在指定日期之前更新的 Issue
  • --sort <SORT>: 排序字段,支持 created_at、-created_at、-updated_at、-last_acted_at(前缀 - 表示倒序)
  • -L, --limit <N>: 最大返回数量(默认:30)
  • -d, --stale-days <N>: 仅显示超过 N 天没有活动的 Issue(默认:0,即不过滤)
  • -w, --wide: 切换到 8 列宽表格(追加 PRIORITY / AUTHOR / CLOSED / STALE)

继承的全局选项:

  • --repo <REPO>: 指定仓库路径(格式:group/repo)
  • --json: 以 JSON 格式输出(包含 closed_at)
  • --domain <DOMAIN>: 指定目标域名(默认:cnb.cool)

示例 ​

bash
# 列出所有 open 状态的 Issue(默认 4 列)
$ cnb-rs issue list

Showing 5 open issues in your-group/your-repo

ID       TITLE                                              LABELS          UPDATED
#276     chore: add rustfmt.toml and CI fmt --check         -               约 6 小时前
#274     refactor(tui): 使用 unicode-width crate 替换...    -               约 1 天前
#269     修复 install.ps1 中未批准 PowerShell 动词告警      target:v0.11.2  约 3 天前

# 按编号批量查询(也可重复传入 --numbers)
$ cnb-rs issue list --numbers 343,345,346
$ cnb-rs issue list --numbers 343 --numbers 345

# 切换到宽表格模式(8 列:补 PRIORITY/AUTHOR/CLOSED/STALE)
$ cnb-rs issue list -w

# 列出已关闭的 Issue
$ cnb-rs issue list -s closed

# 按关闭日期范围过滤(省略 -s 时自动使用 closed)
$ cnb-rs issue list --closed-after 2026-09-01 --closed-before 2026-10-01

# 按更新时间范围过滤
$ cnb-rs issue list --updated-after 2026-09-15 --updated-before 2026-10-01

# 搜索包含关键词的 Issue
$ cnb-rs issue list -k "登录"

# 过滤 P0 优先级
$ cnb-rs issue list -p P0

# 过滤标签
$ cnb-rs issue list -l "bug,urgent"

# 过滤未分配的 Issue
$ cnb-rs issue list -a -

# 按创建时间倒序,取前 10 条
$ cnb-rs issue list --sort -created_at -L 10

# 显示超过 30 天没有活动的 Issue
$ cnb-rs issue list -d 30

# JSON 格式输出
$ cnb-rs --json issue list

终端宽度探测顺序:COLUMNS 环境变量 → crossterm::terminal::window_size → terminal::size → 默认 100 列。 在 Windows console 下若发现表格列宽不准,可手动设置 COLUMNS 环境变量强制覆盖。

API ​

步骤API方法说明
列出 Issue${API}/repos/{repo}/-/issuesGET获取 Issue 列表
按编号批量查询${API}/repos/{repo}/-/issues/batchGET传入 csv 格式的 numbers,最多 100 个

列表查询参数: state、page、page_size、keyword、priority、labels、authors、assignees、close_time_end、updated_time_begin、updated_time_end、order_by

编号查询参数: numbers,例如 numbers=343,345,346。

时间参数: --closed-before 原样传为 close_time_end,--updated-after / --updated-before 原样传为 updated_time_begin / updated_time_end。--closed-after 不传 close_time_begin,而是按 UTC 日期边界在客户端过滤,这是上游修复该参数前的兼容措施。

另请参阅 ​

Released under the MIT License.