cnbcool-cli
v0.1.0
Published
CNB CLI inspired by gh
Readme
cnb
一个面向 CNB OpenAPI 的命令行工具,交互风格参考 gh。
当前版本先覆盖最常用的几个场景:
auth: 保存和查看访问令牌whoami: 查看当前登录用户api: 直接调用任意 CNB OpenAPI 路径repo: 查看仓库、列出仓库、搜索公开仓库、克隆仓库issue: 查询、创建、评论、关闭、重新打开 Issuepr: 查询、创建、关闭、重新打开、合并、评审 Pull Requestrelease: 列表、查看、创建、编辑、删除 Releasecicd: 构建记录、触发构建、停止构建、查看 stage 日志、管理云原生构建设置
安装
pnpm install
pnpm build
pnpm link --global完成后即可直接使用 cnb。
快速开始
先保存访问令牌:
cnb auth login --token <your-token>验证账号:
cnb whoami查看当前目录对应仓库的信息:
cnb repo view列出当前用户仓库:
cnb repo list搜索公开仓库:
cnb repo search demo列出某个仓库的 PR:
cnb pr list owner/repo关闭并重新打开 Issue:
cnb issue close 12 --repo owner/repo --reason completed
cnb issue reopen 12 --repo owner/repo关闭 PR:
cnb pr close 18 --repo owner/repo克隆仓库:
cnb repo clone owner/repo
cnb repo clone owner/repo my-local-dir --ssh创建 PR:
cnb pr create --repo owner/repo --head feat/demo --base main --title "Add demo" --body "Introduce demo feature"查看和创建 Release:
cnb release list owner/repo
cnb release view v1.0.0 --repo owner/repo
cnb release create v1.0.0 --repo owner/repo --title "v1.0.0" --notes "First stable release"管理 CI/CD:
cnb cicd runs owner/repo
cnb cicd run --repo owner/repo --branch main --wait
cnb cicd view 123456 --repo owner/repo
cnb cicd logs 123456 --repo owner/repo --pipeline-id pipeline-1 --stage-id stage-1
cnb cicd settings view owner/repo直接调用任意 OpenAPI:
cnb api /user
cnb api /owner/repo/-/issues -q state=open -q page=1
cnb api /owner/repo/-/pulls -X POST -F title="Demo" -F head=feat/demo -F base=main认证
优先级如下:
- 命令行参数
--token - 环境变量
CNB_TOKEN - 本地配置文件
~/.cnb/config.json
API 地址也支持覆盖:
- 参数:
--base-url - 环境变量:
CNB_BASE_URL
仓库自动推断
当你在 Git 仓库目录中执行 cnb repo view、cnb issue list、cnb pr list 这类命令时,如果没有显式传 repo,CLI 会尝试从 origin 远端地址中自动解析 CNB 仓库路径。
也可以手动设置:
set CNB_REPO=owner/repo常用命令
cnb auth status
cnb repo view owner/repo
cnb repo clone owner/repo
cnb issue create --repo owner/repo --title "Bug" --body "Something is broken"
cnb issue comment 12 --repo owner/repo --body "I am working on this"
cnb issue close 12 --repo owner/repo --reason not_planned
cnb pr view 18 --repo owner/repo
cnb pr close 18 --repo owner/repo
cnb pr merge 18 --repo owner/repo --method squash
cnb pr review 18 --repo owner/repo --event approve --body "Looks good"
cnb release view v1.0.0 --repo owner/repo
cnb release delete v1.0.0 --repo owner/repo --yes
cnb cicd runs owner/repo --status running
cnb cicd run --repo owner/repo --branch main --env NODE_ENV=production
cnb cicd settings set --repo owner/repo --auto-trigger true说明
- CNB 文档使用的是
Bearer认证头。 - 当前实现已经覆盖仓库、Issue、Pull Request、Release 和 CI/CD 这些最接近
gh的核心场景。 cnb release delete为避免误删,需要显式追加--yes。cnb cicd logs需要你先通过cnb cicd view <sn> --repo <repo>拿到pipeline id和stage id。- 若某个接口暂未封装,可以先用
cnb api直接调用。
