Design for replacing CLI options with TOML config file support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
配置文件支持设计
概述
修改 zzpyjenkins CLI 的参数传入方式,从配置文件读取 Jenkins 服务器配置,替代原有的 CLI 选项和环境变量方式。
配置文件
路径
~/.config/zzpyjenkins/config.toml
格式
[work]
url = "https://jenkins.work.com"
username = "myuser"
password = "mypassword"
[home]
url = "http://localhost:8080"
username = "admin"
password = "admin123"
每个 section 名称即为服务器名称,包含三个必填字段:
url: Jenkins 服务器 URLusername: 用户名password: 密码或 Token
CLI 变更
移除选项
--url/-u--username/-U--password/-P
新增选项
--server/-s: 指定使用的服务器配置名,必填
使用示例
# 查看服务器信息
zzpyjenkins -s work info
# 列出任务
zzpyjenkins --server home list
# 触发构建
zzpyjenkins -s work build my-job
错误处理
| 场景 | 行为 |
|---|---|
| 配置文件不存在 | 显示错误信息,提示配置文件路径 |
| 服务器名不存在 | 显示错误信息,列出可用的服务器名 |
| 配置项缺失 (url/username/password) | 显示错误信息,指出缺失的字段 |
实现细节
依赖
使用 Python 3.11+ 内置的 tomllib 模块,无需额外依赖。
代码变更
cli.py:
- 移除
--url,--username,--password选项 - 添加
--server/-s选项 - 新增
load_config()函数:- 读取
~/.config/zzpyjenkins/config.toml - 解析 TOML 内容
- 返回配置字典
- 读取
- 修改
get_client()函数:- 调用
load_config()获取配置 - 根据
--server参数选择对应配置 - 创建
JenkinsClient实例
- 调用
jenkins_client.py:
无需修改。
迁移说明
用户需要:
- 创建配置文件
~/.config/zzpyjenkins/config.toml - 将原有的环境变量或 CLI 参数迁移到配置文件
- 使用
-s <name>指定服务器