Cobo Command-line Tool
Project description
开发、安装与运行
本地开发安装
在代码根目录运行安装,将本地代码包进行安装,安装完成之后可以运行命令行
# install poetry
curl -sSL https://install.python-poetry.org | python3 -
# 进行安装
poetry install
# 执行命令
poetry run cobo
# 执行子命令(config),配置参数(number=100)
poetry run cobo --enable-debug config set user_access_token 1234567890
代码开发指南
命令行工具基于 click 来开发的
commands.py 是程序入口,其他 *_commands.py 为子命令
命令使用 env_file 来存储数据,通过 ctx 对象在可以访问其的数据。
ctx.obj 在 commands.py 中由 ctx.ensure_object(CommandContext)
进行初始化,后续可以通过 ctx.obj.env_manager 来调用
CommandContext 另一个参数为 env ,代表所想使用的环境(Dev, Prod)
命令的参数有以下几种:
- 子命令: 如
config
子命令,分为子命令组(config
)和直接的子命令(login
)。默认情况下直接的子命令显示帮助信息,但是像login
这种直接的子命令会直接执行 - 选项: 即 option,例如
keys
命令下的--key-type
指定不同类型;又如 主命令下的--enable-debug
通过添加与否来指定flag - 参数: 即 argument,例如
config
命令下的set
子命令 后跟的key
与value
单元测试
单元测试中需要注意的有两点
- 使用 CliRunner 来 invoke 相应的命令
- 使用 isolated_filesystem() 方法可以临时创建工作目录,用于文件的保存。 由于本程序使用 .env 文件,所以这步是必要的,防止 dotenv 库无法正常识别和找到 .env 文件
命令介绍
命令执行前假设已经通过 make install
安装至当前虚拟python环境。
在执行时可以在主命令后追加 --enable-debug
参数显示debug级别日志,
config 命令
将参数设置到 .env 文件中
cobo config set number 100
cobo config get number
cobo config unset number
keys 命令
generate 子命令
生成 API/APP keypair,并存储到 .env 文件中
poetry run cobo keys generate --help
Usage: cobo keys generate [OPTIONS]
Options:
--key-type TEXT Specify the key used for API or APP.
--alg TEXT Specify the key generation algorithm.
--force Force to replace existing keys.
--help Show this message and exit.
如果 .env 中已经存在对应的 API/APP 的 key,则需要添加 --force 选项才能进行生成
poetry run cobo keys generate --key-type APP --alg ed25519
poetry run cobo keys generate --key-type APP --alg ed25519 --force
login 命令
poetry run cobo login --help
Usage: cobo login [OPTIONS] COMMAND [ARGS]...
Options:
-u, --user login action associated with user dimension. default
login_type.
-o, --org login action associated with org dimension.
--org-uuid TEXT Specify the org id used for retrieve token.
--refresh-token Refresh token.
--help Show this message and exit.
Org Token
获取 org token (org 授权给 App 的 Access Token 和 Refresh Token)
获取 Org Token 的前提是,Org 已经完成了对当前 App 的授权
-
生成 APP_KEY/APP_SECRET,在 Cobo Portal 创建应用过程来配置 APP_KEY
poetry run cobo keys generate --key-type APP --alg ed25519
-
将从 Cobo Portal 中注册完应用获取到的 CLIENT_ID 保存到 .env 文件中
poetry run cobo config set CLIENT_ID aYkam0BPwJrduDU3Wqu89htGDHy4ATkV
-
Org 对 App 进行授权(Org 安装应用),并进行审核。此步骤需要进行授权的 Org(大概率不是开发者自己的Org) 在 Cobo Portal的后台中进行操作。
理论上开发者可以将自己的 Org 对自己的 App授权,但是开发者开发 App 更多的是为了一般性地供其他 Org 使用。
如果只是为了自己 Org 使用,直接使用 API KEY 相关功能即可。
-
Org 完成应用的安装之后,App 便得到了 Org 的授权,此时可以获取此 Org 相关的 Token
- 获取 Access Token、Refresh Token,并存储
poetry run cobo --env sandbox login -o --org-uuid 02273047-5730-4b63-be0e-399e5d3a1054
- 刷新 Token,并存储
poetry run cobo --env sandbox login -o --org-uuid 02273047-5730-4b63-be0e-399e5d3a1054 --refresh-token
User Token
使用 -u 参数进行用户身份级别的登录,登录完成后会获取到 USER ACCESS TOKEN 用于后续请求
poetry run cobo --env sandbox login -u
poetry run cobo --enable-debug --env sandbox login -u
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file cobo_cli-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: cobo_cli-0.0.3-py3-none-any.whl
- Upload date:
- Size: 69.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00e402acfd92c7d92268f7ae0982d7b4cebc28a88828ced3c806265c9e8a849b |
|
MD5 | f03d2c63332889c72eafb0c85cf8e7dd |
|
BLAKE2b-256 | 39fb367aedfa297ff001e321dfe7d65c84a7947fa372704795af6776691f8979 |