logo
0
0
WeChat Login
🎉 init: cnb-stars v0.1.0 脚手架 — Star 累积趋势可视化 extension

cnb-stars

Star 累积趋势可视化 dashboard — cnb-rs 的官方 extension。

获取 CNB 仓库所有 Star 用户数据,按周聚合生成累积趋势曲线,用 ratatui 全屏渲染。

qCtrl+C 退出。

安装

需要先安装 cnb-rs v0.13+(含 extension 系统):

cnb-rs ext install cnb-stars
# 或完整路径
cnb-rs ext install wwvo/cnb-rs/cnb-stars

用法

在任意 CNB git 仓库目录下:

cnb-rs stars

也可显式指定仓库:

cnb-rs --repo wwvo/cnb-rs/cnb-rs stars

设计

  • 零 cnb-rs 内部 crate 依赖:不引 cnb-core / cnb-tui / cnb-api,独立编译、独立发版
  • subprocess 调 $CNB_BIN api:CNB OpenAPI 调用全部走 cnb-rs api /{repo}/-/stars?page=N subprocess,token / domain / 重试 / 错误格式化全部委托给 cnb-rs,本 extension 只做数据可视化
  • wrapped pagination 手工分页:CNB /-/stars 返回 {users: [...], total: N} 而非 array,cnb-rs api --paginate 不支持 wrapped 响应,本 extension 自己根据 total 算页数循环调用

env 依赖

dispatch 时由 cnb-rs 自动注入:

  • CNB_BIN:cnb-rs 可执行文件绝对路径(subprocess 调用入口)
  • CNB_REPO:当前仓库路径 <owner>/<group>/<repo>(cnb-rs 从 git remote / --repo flag / git config cnb.defaultRepo 推断)
  • CNB_DOMAIN:目标域名(默认 cnb.cool,本 extension 不直接使用,但 cnb-rs api 会用)
  • CNB_EXTENSION_NAME:本 extension 名(本 extension 不使用)

如果直接跑 cnb-stars.exe 而非 cnb-rs stars

  • CNB_BIN 缺省退化为 PATH 里查找 cnb-rs
  • CNB_REPO 缺省时直接报错,要求加 --repo 后用 cnb-rs stars 调用

发版方式(本地构建 + cnb-rs 上传)

本仓库不使用 CNB 远程构建流水线。Release 工作流:

  1. 本地多平台 cargo build --release --target <triple>
  2. 重命名 binary 为 cnb-stars-<os>-<arch>[.exe]
  3. cnb-rs release create <tag> 建 release
  4. cnb-rs release asset-upload <tag> <file> 上传 binary

.cnb.yml 只跑 CI(fmt / clippy / test / build verify),不跑 release stage。

开发

cargo build --release
# 模拟 cnb-rs 注入 env 后跑
$env:CNB_BIN = (Resolve-Path ..\cnb-rs\target\release\cnb-rs.exe).Path
$env:CNB_REPO = "wwvo/cnb-rs/cnb-rs"
./target/release/cnb-stars

License

Apache-2.0(继承自 cnb-rs)