zt-devops-cli 0.1.8__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,239 @@
1
+ Metadata-Version: 2.4
2
+ Name: zt-devops-cli
3
+ Version: 0.2.0
4
+ Summary: DevOps 平台迭代管理 CLI
5
+ Requires-Python: >=3.10
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: playwright>=1.40.0
8
+ Requires-Dist: requests>=2.31.0
9
+ Requires-Dist: click>=8.1.0
10
+ Requires-Dist: pyyaml>=6.0
11
+
12
+ # DevOps CLI
13
+
14
+ 蓝鲸 DevOps(ZTN)平台迭代、任务、缺陷等能力的命令行工具。
15
+
16
+ ## 打包
17
+
18
+ ```bash
19
+ uv pip install --upgrade build twine
20
+ uv build
21
+ uv publish dist/*
22
+ ```
23
+
24
+ ## 安装
25
+
26
+ **源码安装**
27
+
28
+ ```bash
29
+ pip install -e .
30
+ ```
31
+
32
+ **pip / pipx 安装**
33
+
34
+ ```bash
35
+ pipx install zt-devops-cli
36
+ ```
37
+
38
+ ## 使用
39
+
40
+ ### 全局选项
41
+
42
+ 根命令 `zt-devops-cli` 支持:
43
+
44
+ | 选项 | 说明 |
45
+ |------|------|
46
+ | `-p` / `--project` | 默认项目 ID;子命令若再传 `-p` 会覆盖 |
47
+ | `-o` / `--output` | `json`(默认)或 `human`;列表类在 `human` 下为表格,部分写操作在 `human` 下仅输出简短成功信息 |
48
+
49
+ 示例:
50
+
51
+ ```bash
52
+ zt-devops-cli -o human -p b9f157 bug list --num 1 --size 20
53
+ ```
54
+
55
+ ### 登录
56
+
57
+ 首次或 cookie 失效时会走浏览器登录流程;成功后将 cookie 写入本地缓存。
58
+
59
+ ```bash
60
+ zt-devops-cli login
61
+ ```
62
+
63
+ 需要弹出窗口手动登录时(无环境变量自动填表时):
64
+
65
+ ```bash
66
+ zt-devops-cli login --headed
67
+ ```
68
+
69
+ 无头自动登录依赖环境变量 `ZT_SSO_USERNAME`、`ZT_SSO_PASSWORD`(见 `auth` 模块说明)。
70
+
71
+ ### 项目管理
72
+
73
+ ```bash
74
+ zt-devops-cli project list
75
+ ```
76
+
77
+ ### ZTeam 项目
78
+
79
+ ```bash
80
+ zt-devops-cli zteam-project list --project f39507
81
+ ```
82
+
83
+ ### 迭代管理
84
+
85
+ **迭代列表**
86
+
87
+ ```bash
88
+ zt-devops-cli sprint list --project k64352
89
+ ```
90
+
91
+ **迭代提测列表**
92
+
93
+ ```bash
94
+ zt-devops-cli sprint test-list --project b9f157 \
95
+ --search "BSC_V26.701.01" \
96
+ --num 1 \
97
+ --size 10
98
+ ```
99
+
100
+ 可选筛选:`--result`、`--create-user`、`--create-time`、`--principal`、`--obj-id`(均可重复传入)。
101
+
102
+ **创建迭代**
103
+
104
+ ```bash
105
+ zt-devops-cli sprint create --project k64352 \
106
+ --title "迭代名称" \
107
+ --start-date 2026-04-04 \
108
+ --end-date 2026-05-30 \
109
+ --purpose "迭代目标"
110
+ ```
111
+
112
+ 可选:`--test-start`、`--test-end`。
113
+
114
+ **启用 / 删除 / 完成迭代**
115
+
116
+ ```bash
117
+ zt-devops-cli sprint start --project k64352 --sprint-id <id>
118
+ zt-devops-cli sprint delete --project k64352 --sprint-id <id>
119
+ zt-devops-cli sprint done --project k64352 --sprint-id <id>
120
+ ```
121
+
122
+ ### 任务管理
123
+
124
+ **查询任务列表(TASK)**
125
+
126
+ 必填:`-p`、`--start-date`、`--end-date`。可选:`--creator`、`--num`、`--size`、`--remember` / `--no-remember`(默认 `--no-remember`)。
127
+
128
+ ```bash
129
+ zt-devops-cli task list --project f39507 \
130
+ --start-date 2026-04-01 \
131
+ --end-date 2026-04-30 \
132
+ --creator zt07905
133
+ ```
134
+
135
+ **创建任务(TASK)**
136
+
137
+ 必填:`-p`、`-t`、`--owner`、`--estimate-start`、`--estimate-end`、`--zteam-project-id`(项目 ID 来自 `project list`,ZTeam 项目 ID 来自 `zteam-project list`)。
138
+
139
+ ```bash
140
+ zt-devops-cli task create \
141
+ --project "<project-id>" \
142
+ --title "<任务标题>" \
143
+ --owner zt07905 \
144
+ --estimate-start 2026-04-01 \
145
+ --estimate-end 2026-04-30 \
146
+ --zteam-project-id "<zteam-project-id>"
147
+ ```
148
+
149
+ 可选:`--model-type-id`、`--priority`、`--editor-type`、`--desc`、`--parent-id`、`--demand-classify`、`--origin-hours`、`--remain-hours`;扩展字段使用 `--field fieldId=value`(可多次)。
150
+
151
+ ### 缺陷管理
152
+
153
+ **查询缺陷列表(BUG)**
154
+
155
+ 与页面表格筛选一致。必填:`-p`。常用可选:`--num`、`--size`、`--remember` / `--no-remember`(默认 `--no-remember`)、`--operator`(逗号分隔多账号)、`--zteam-project`、`--owner-field` / `--owner`、`--state`(状态 ID,可先 `bug states`)、`--creator`、`--create-date` 或 `--create-start` + `--create-end`。
156
+
157
+ ```bash
158
+ zt-devops-cli bug list --project b9f157 \
159
+ --num 1 \
160
+ --size 20
161
+ ```
162
+
163
+ **查询缺陷状态可选项**
164
+
165
+ ```bash
166
+ zt-devops-cli bug states --project b9f157
167
+ ```
168
+
169
+ 默认 `--all`;若与页面不一致可尝试 `--no-all`。
170
+
171
+ **创建缺陷(BUG)**
172
+
173
+ 对应 `POST .../issue/{project}`。`--owner` 同时写入经办人与缺陷责任人;迭代、ZTeam、严重程度、分类、发现阶段等使用代码内固定 `fieldId`(与团队抓包一致)。若你们项目字段不同,需改源码中的 `instance_values` 映射。
174
+
175
+ | 选项 | 说明 |
176
+ |------|------|
177
+ | `-p` / `--project` | 项目 ID |
178
+ | `--zteam-project-id` | ZTeam 项目 ID |
179
+ | `--sprint-id` | 关联迭代 ID;可不关联时传空字符串 `""` |
180
+ | `-t` / `--title` | 标题 |
181
+ | `--severity` / `--type` / `--discovery-phase` | 与表单选项的 **value** 一致(非中文展示名) |
182
+ | `--owner` | 账号 |
183
+ | `--priority` | 默认 `CENTRAL` |
184
+ | `--desc` / `--desc-editor-type` | 描述 HTML 与编辑器类型,默认带四段模板 |
185
+ | `--parent-id`、`--model-type-id`、`--demand-classify` | 可选或保持默认 |
186
+
187
+ ```bash
188
+ zt-devops-cli bug create -p b9f157 \
189
+ --zteam-project-id 15678224 \
190
+ --sprint-id 3129a9cd7315457eb2963bfe19919e72 \
191
+ -t "缺陷标题示例" \
192
+ --owner zt07905 \
193
+ --severity 9Clfj3I8fR \
194
+ --type bgEHPFOjFt \
195
+ --discovery-phase vENjmMhXMC
196
+ ```
197
+
198
+ **缺陷工作流(接受 / 已解决 / 已验证 / 关闭 / 重新打开 / 拒绝)**
199
+
200
+ 均调用 `POST .../issue_direction/{project}/next`。各动作对应的 `nextNodeId` 写死在 `api.BUG_DIRECTION_NEXT_NODE_IDS`(与某项目浏览器抓包一致);若你们项目工作流节点不同,需改源码中该表。
201
+
202
+ - **位置参数 `ISSUE_ID`**:缺陷 ID(必填)。
203
+ - **`-p` / `--project`**:可省略,顺序为「子命令 `-p` → 根命令 `-p` → `config.yaml` 的 `default_project`」。
204
+ - **`--operator`**:可省略,逗号分隔多个账号;顺序为「CLI → 环境变量 `ZT_DEVOPS_DEFAULT_OPERATOR` 或 `ZT_DEVOPS_OPERATOR` → `config.yaml` 的 `default_operator`」。
205
+ - **`--comment`**:可选。
206
+
207
+ ```bash
208
+ zt-devops-cli -p b9f157 bug accept <issue-id> --comment '<p>说明</p>'
209
+ zt-devops-cli bug resolve -p b9f157 <issue-id> --operator zt07905
210
+ zt-devops-cli bug verify <issue-id> --operator zt07905,user02
211
+ zt-devops-cli bug close -p b9f157 <issue-id>
212
+ zt-devops-cli bug reopen -p b9f157 <issue-id>
213
+ zt-devops-cli bug reject -p b9f157 <issue-id>
214
+ ```
215
+
216
+ 在 `~/.zt-devops-cli/config.yaml` 中可写:
217
+
218
+ ```yaml
219
+ default_project: b9f157
220
+ default_operator: zt07905
221
+ ```
222
+
223
+ **删除缺陷**
224
+
225
+ ```bash
226
+ zt-devops-cli bug delete -p b9f157 -i <issue-id>
227
+ zt-devops-cli bug delete -p b9f157 -i <issue-id> -y
228
+ ```
229
+
230
+ `-y` / `--yes` 跳过交互确认。
231
+
232
+ ### 需求管理
233
+
234
+ `issue` 命令组已预留,当前版本无子命令。可用 `zt-devops-cli issue --help` 查看。
235
+
236
+ ## 配置
237
+
238
+ - Cookie 缓存:`~/.zt-devops-cli/cookies.json`
239
+ - 配置文件:`~/.zt-devops-cli/config.yaml`(常用键:`default_project` 等同根命令 `-p`;`default_operator` 供缺陷流转子命令在未传 `--operator` 时使用)
@@ -0,0 +1,228 @@
1
+ # DevOps CLI
2
+
3
+ 蓝鲸 DevOps(ZTN)平台迭代、任务、缺陷等能力的命令行工具。
4
+
5
+ ## 打包
6
+
7
+ ```bash
8
+ uv pip install --upgrade build twine
9
+ uv build
10
+ uv publish dist/*
11
+ ```
12
+
13
+ ## 安装
14
+
15
+ **源码安装**
16
+
17
+ ```bash
18
+ pip install -e .
19
+ ```
20
+
21
+ **pip / pipx 安装**
22
+
23
+ ```bash
24
+ pipx install zt-devops-cli
25
+ ```
26
+
27
+ ## 使用
28
+
29
+ ### 全局选项
30
+
31
+ 根命令 `zt-devops-cli` 支持:
32
+
33
+ | 选项 | 说明 |
34
+ |------|------|
35
+ | `-p` / `--project` | 默认项目 ID;子命令若再传 `-p` 会覆盖 |
36
+ | `-o` / `--output` | `json`(默认)或 `human`;列表类在 `human` 下为表格,部分写操作在 `human` 下仅输出简短成功信息 |
37
+
38
+ 示例:
39
+
40
+ ```bash
41
+ zt-devops-cli -o human -p b9f157 bug list --num 1 --size 20
42
+ ```
43
+
44
+ ### 登录
45
+
46
+ 首次或 cookie 失效时会走浏览器登录流程;成功后将 cookie 写入本地缓存。
47
+
48
+ ```bash
49
+ zt-devops-cli login
50
+ ```
51
+
52
+ 需要弹出窗口手动登录时(无环境变量自动填表时):
53
+
54
+ ```bash
55
+ zt-devops-cli login --headed
56
+ ```
57
+
58
+ 无头自动登录依赖环境变量 `ZT_SSO_USERNAME`、`ZT_SSO_PASSWORD`(见 `auth` 模块说明)。
59
+
60
+ ### 项目管理
61
+
62
+ ```bash
63
+ zt-devops-cli project list
64
+ ```
65
+
66
+ ### ZTeam 项目
67
+
68
+ ```bash
69
+ zt-devops-cli zteam-project list --project f39507
70
+ ```
71
+
72
+ ### 迭代管理
73
+
74
+ **迭代列表**
75
+
76
+ ```bash
77
+ zt-devops-cli sprint list --project k64352
78
+ ```
79
+
80
+ **迭代提测列表**
81
+
82
+ ```bash
83
+ zt-devops-cli sprint test-list --project b9f157 \
84
+ --search "BSC_V26.701.01" \
85
+ --num 1 \
86
+ --size 10
87
+ ```
88
+
89
+ 可选筛选:`--result`、`--create-user`、`--create-time`、`--principal`、`--obj-id`(均可重复传入)。
90
+
91
+ **创建迭代**
92
+
93
+ ```bash
94
+ zt-devops-cli sprint create --project k64352 \
95
+ --title "迭代名称" \
96
+ --start-date 2026-04-04 \
97
+ --end-date 2026-05-30 \
98
+ --purpose "迭代目标"
99
+ ```
100
+
101
+ 可选:`--test-start`、`--test-end`。
102
+
103
+ **启用 / 删除 / 完成迭代**
104
+
105
+ ```bash
106
+ zt-devops-cli sprint start --project k64352 --sprint-id <id>
107
+ zt-devops-cli sprint delete --project k64352 --sprint-id <id>
108
+ zt-devops-cli sprint done --project k64352 --sprint-id <id>
109
+ ```
110
+
111
+ ### 任务管理
112
+
113
+ **查询任务列表(TASK)**
114
+
115
+ 必填:`-p`、`--start-date`、`--end-date`。可选:`--creator`、`--num`、`--size`、`--remember` / `--no-remember`(默认 `--no-remember`)。
116
+
117
+ ```bash
118
+ zt-devops-cli task list --project f39507 \
119
+ --start-date 2026-04-01 \
120
+ --end-date 2026-04-30 \
121
+ --creator zt07905
122
+ ```
123
+
124
+ **创建任务(TASK)**
125
+
126
+ 必填:`-p`、`-t`、`--owner`、`--estimate-start`、`--estimate-end`、`--zteam-project-id`(项目 ID 来自 `project list`,ZTeam 项目 ID 来自 `zteam-project list`)。
127
+
128
+ ```bash
129
+ zt-devops-cli task create \
130
+ --project "<project-id>" \
131
+ --title "<任务标题>" \
132
+ --owner zt07905 \
133
+ --estimate-start 2026-04-01 \
134
+ --estimate-end 2026-04-30 \
135
+ --zteam-project-id "<zteam-project-id>"
136
+ ```
137
+
138
+ 可选:`--model-type-id`、`--priority`、`--editor-type`、`--desc`、`--parent-id`、`--demand-classify`、`--origin-hours`、`--remain-hours`;扩展字段使用 `--field fieldId=value`(可多次)。
139
+
140
+ ### 缺陷管理
141
+
142
+ **查询缺陷列表(BUG)**
143
+
144
+ 与页面表格筛选一致。必填:`-p`。常用可选:`--num`、`--size`、`--remember` / `--no-remember`(默认 `--no-remember`)、`--operator`(逗号分隔多账号)、`--zteam-project`、`--owner-field` / `--owner`、`--state`(状态 ID,可先 `bug states`)、`--creator`、`--create-date` 或 `--create-start` + `--create-end`。
145
+
146
+ ```bash
147
+ zt-devops-cli bug list --project b9f157 \
148
+ --num 1 \
149
+ --size 20
150
+ ```
151
+
152
+ **查询缺陷状态可选项**
153
+
154
+ ```bash
155
+ zt-devops-cli bug states --project b9f157
156
+ ```
157
+
158
+ 默认 `--all`;若与页面不一致可尝试 `--no-all`。
159
+
160
+ **创建缺陷(BUG)**
161
+
162
+ 对应 `POST .../issue/{project}`。`--owner` 同时写入经办人与缺陷责任人;迭代、ZTeam、严重程度、分类、发现阶段等使用代码内固定 `fieldId`(与团队抓包一致)。若你们项目字段不同,需改源码中的 `instance_values` 映射。
163
+
164
+ | 选项 | 说明 |
165
+ |------|------|
166
+ | `-p` / `--project` | 项目 ID |
167
+ | `--zteam-project-id` | ZTeam 项目 ID |
168
+ | `--sprint-id` | 关联迭代 ID;可不关联时传空字符串 `""` |
169
+ | `-t` / `--title` | 标题 |
170
+ | `--severity` / `--type` / `--discovery-phase` | 与表单选项的 **value** 一致(非中文展示名) |
171
+ | `--owner` | 账号 |
172
+ | `--priority` | 默认 `CENTRAL` |
173
+ | `--desc` / `--desc-editor-type` | 描述 HTML 与编辑器类型,默认带四段模板 |
174
+ | `--parent-id`、`--model-type-id`、`--demand-classify` | 可选或保持默认 |
175
+
176
+ ```bash
177
+ zt-devops-cli bug create -p b9f157 \
178
+ --zteam-project-id 15678224 \
179
+ --sprint-id 3129a9cd7315457eb2963bfe19919e72 \
180
+ -t "缺陷标题示例" \
181
+ --owner zt07905 \
182
+ --severity 9Clfj3I8fR \
183
+ --type bgEHPFOjFt \
184
+ --discovery-phase vENjmMhXMC
185
+ ```
186
+
187
+ **缺陷工作流(接受 / 已解决 / 已验证 / 关闭 / 重新打开 / 拒绝)**
188
+
189
+ 均调用 `POST .../issue_direction/{project}/next`。各动作对应的 `nextNodeId` 写死在 `api.BUG_DIRECTION_NEXT_NODE_IDS`(与某项目浏览器抓包一致);若你们项目工作流节点不同,需改源码中该表。
190
+
191
+ - **位置参数 `ISSUE_ID`**:缺陷 ID(必填)。
192
+ - **`-p` / `--project`**:可省略,顺序为「子命令 `-p` → 根命令 `-p` → `config.yaml` 的 `default_project`」。
193
+ - **`--operator`**:可省略,逗号分隔多个账号;顺序为「CLI → 环境变量 `ZT_DEVOPS_DEFAULT_OPERATOR` 或 `ZT_DEVOPS_OPERATOR` → `config.yaml` 的 `default_operator`」。
194
+ - **`--comment`**:可选。
195
+
196
+ ```bash
197
+ zt-devops-cli -p b9f157 bug accept <issue-id> --comment '<p>说明</p>'
198
+ zt-devops-cli bug resolve -p b9f157 <issue-id> --operator zt07905
199
+ zt-devops-cli bug verify <issue-id> --operator zt07905,user02
200
+ zt-devops-cli bug close -p b9f157 <issue-id>
201
+ zt-devops-cli bug reopen -p b9f157 <issue-id>
202
+ zt-devops-cli bug reject -p b9f157 <issue-id>
203
+ ```
204
+
205
+ 在 `~/.zt-devops-cli/config.yaml` 中可写:
206
+
207
+ ```yaml
208
+ default_project: b9f157
209
+ default_operator: zt07905
210
+ ```
211
+
212
+ **删除缺陷**
213
+
214
+ ```bash
215
+ zt-devops-cli bug delete -p b9f157 -i <issue-id>
216
+ zt-devops-cli bug delete -p b9f157 -i <issue-id> -y
217
+ ```
218
+
219
+ `-y` / `--yes` 跳过交互确认。
220
+
221
+ ### 需求管理
222
+
223
+ `issue` 命令组已预留,当前版本无子命令。可用 `zt-devops-cli issue --help` 查看。
224
+
225
+ ## 配置
226
+
227
+ - Cookie 缓存:`~/.zt-devops-cli/cookies.json`
228
+ - 配置文件:`~/.zt-devops-cli/config.yaml`(常用键:`default_project` 等同根命令 `-p`;`default_operator` 供缺陷流转子命令在未传 `--operator` 时使用)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "zt-devops-cli"
7
- version = "0.1.8"
7
+ version = "0.2.0"
8
8
  description = "DevOps 平台迭代管理 CLI"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -16,7 +16,7 @@ dependencies = [
16
16
  ]
17
17
 
18
18
  [project.scripts]
19
- zt-devops-cli = "devops_cli.cli:main"
19
+ zt-devops-cli = "zt_devops_cli.cli:main"
20
20
 
21
21
  [tool.pytest.ini_options]
22
22
  testpaths = ["tests"]