跳转到内容

cnb-rs issue properties

cnb-rs issue properties <COMMAND> [flags]

Issue 自定义属性管理:查询 / 设置单 issue 上的属性值,以及列出仓库定义的属性 schema。

CNB 的"自定义属性"是仓库级别预定义的字段(类型:string / date / number),各 issue 可以填充值。要先在仓库设置里定义属性,再用 set 给 issue 赋值。

子命令

命令作用API
get <NUMBER>查询单个 Issue 上的属性值GET /{repo}/-/issues/{n}/property
set <NUMBER> -p KEY=VAL,...批量更新 Issue 上的属性值PATCH /{repo}/-/issues/{n}/property
list [--invisible]列出仓库定义的属性 schema(默认可见的)GET /{repo}/-/property/property/invisible

选项

properties get

  • <NUMBER>:Issue 编号(必填)

properties set

  • <NUMBER>:Issue 编号(必填)
  • -p, --property <KEY=VAL>:属性键值对,可重复传 -p,也支持单次逗号分隔多对。KEY 必须是仓库已定义的属性 key
    • 用第一个 = 拆分 key/value,因此 value 里可以再含 =(如 foo=a=b=c 会被解析为 fooa=b=c
    • 失败的 key 会在 stderr 列出,整体以非零退出码结束(同 close 批量失败语义)

properties list

  • --invisible:改查不可见属性(默认查可见的)

继承的全局选项:

  • --repo <REPO>:指定仓库路径(格式:group/repo
  • --json:以 JSON 格式输出(适用于 get / list
  • --domain <DOMAIN>:指定目标域名(默认:cnb.cool

示例

bash
# 列出仓库可见的属性 schema
$ cnb-rs issue properties list
KEY                   NAME                  TYPE      VISIBLE
priority_score        优先级分数            number    true
expected_date         预计完成日期          date      true

# 仓库没定义属性时
$ cnb-rs issue properties list
wwvo/cnb-rs/cnb-rs 没有可见的自定义属性

# 列不可见的属性
$ cnb-rs issue properties list --invisible

# 查 issue 当前的属性值
$ cnb-rs issue properties get 287
KEY                   NAME                  TYPE      VALUE
priority_score        优先级分数            number    85
expected_date         预计完成日期          date      2026-06-01

# 没有属性值时
$ cnb-rs issue properties get 287
Issue #287 没有自定义属性值

# 批量设置(一次设置 2 个属性)
$ cnb-rs issue properties set 287 -p priority_score=85,expected_date=2026-06-01
 Issue #287 属性已更新 (success=2, failed=0)

# 仓库未定义的 key 会被服务端拒绝;整体非零退出码
$ cnb-rs issue properties set 287 -p unknown_key=foo
 Issue #287 属性已更新 (success=0, failed=1)
 失败的属性 key: unknown_key
错误: 1 个属性更新失败

# JSON 模式给脚本消费
$ cnb-rs --json issue properties get 287
$ cnb-rs --json issue properties list

列设计:

  • getKEY(20) + NAME(20) + TYPE(8) + VALUE(flex 30)
  • listKEY(20) + NAME(flex 20) + TYPE(8) + VISIBLE(8)

输出约定

  • stderr:人类可读的成功提示(✓ ...)、警告(⚠ ... 列出失败 key)、错误(错误: ...
  • stdout
    • get / list:表格 / JSON
    • set:无 stdout 输出(统计信息和失败列表走 stderr)

另请参阅

Released under the MIT License.