zt-devops-cli 0.1.9__tar.gz → 0.2.1__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.
- zt_devops_cli-0.2.1/PKG-INFO +287 -0
- zt_devops_cli-0.2.1/README.md +276 -0
- {zt_devops_cli-0.1.9 → zt_devops_cli-0.2.1}/pyproject.toml +2 -2
- {zt_devops_cli-0.1.9/src/devops_cli → zt_devops_cli-0.2.1/src/zt_devops_cli}/api.py +143 -2
- {zt_devops_cli-0.1.9/src/devops_cli → zt_devops_cli-0.2.1/src/zt_devops_cli}/cli.py +557 -33
- {zt_devops_cli-0.1.9/src/devops_cli → zt_devops_cli-0.2.1/src/zt_devops_cli}/config.py +1 -1
- zt_devops_cli-0.2.1/src/zt_devops_cli.egg-info/PKG-INFO +287 -0
- {zt_devops_cli-0.1.9 → zt_devops_cli-0.2.1}/src/zt_devops_cli.egg-info/SOURCES.txt +5 -5
- zt_devops_cli-0.2.1/src/zt_devops_cli.egg-info/entry_points.txt +2 -0
- zt_devops_cli-0.2.1/src/zt_devops_cli.egg-info/top_level.txt +1 -0
- zt_devops_cli-0.1.9/PKG-INFO +0 -141
- zt_devops_cli-0.1.9/README.md +0 -130
- zt_devops_cli-0.1.9/src/zt_devops_cli.egg-info/PKG-INFO +0 -141
- zt_devops_cli-0.1.9/src/zt_devops_cli.egg-info/entry_points.txt +0 -2
- zt_devops_cli-0.1.9/src/zt_devops_cli.egg-info/top_level.txt +0 -1
- {zt_devops_cli-0.1.9 → zt_devops_cli-0.2.1}/setup.cfg +0 -0
- {zt_devops_cli-0.1.9/src/devops_cli → zt_devops_cli-0.2.1/src/zt_devops_cli}/__init__.py +0 -0
- {zt_devops_cli-0.1.9/src/devops_cli → zt_devops_cli-0.2.1/src/zt_devops_cli}/auth.py +0 -0
- {zt_devops_cli-0.1.9 → zt_devops_cli-0.2.1}/src/zt_devops_cli.egg-info/dependency_links.txt +0 -0
- {zt_devops_cli-0.1.9 → zt_devops_cli-0.2.1}/src/zt_devops_cli.egg-info/requires.txt +0 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: zt-devops-cli
|
|
3
|
+
Version: 0.2.1
|
|
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
|
|
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` 为可选的命令**生效,解析顺序为「子命令 `-p` → 根命令 `-p` → `config.yaml` 的 `default_project`」 |
|
|
47
|
+
| `-o` / `--output` | `json`(默认)或 `human`;列表类在 `human` 下为表格,部分写操作在 `human` 下仅输出简短成功信息 |
|
|
48
|
+
|
|
49
|
+
**注意(Click 解析)**:若子命令将 `-p` / `--project` 标为必填(如 `bug list`、`task list`、`bug create`、缺陷流转等),则必须在**该子命令后**再写一遍 `-p`,根命令上的 `-p` 不会自动填入子命令参数。
|
|
50
|
+
|
|
51
|
+
示例(`sprint list` 的 `-p` 可选,可用根级 `-p`):
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
zt-devops-cli -o human -p k64352 sprint list
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
示例(`bug list` 的 `-p` 为子命令必填,须写在 `bug list` 之后):
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
zt-devops-cli -o human bug list -p b9f157 --num 1 --size 20
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 登录
|
|
64
|
+
|
|
65
|
+
首次或 cookie 失效时会走浏览器登录流程;成功后将 cookie 写入本地缓存。
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
zt-devops-cli login
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
需要弹出窗口手动登录时(无环境变量自动填表时):
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
zt-devops-cli login --headed
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
无头自动登录依赖环境变量 `ZT_SSO_USERNAME`、`ZT_SSO_PASSWORD`(见 `auth` 模块说明)。
|
|
78
|
+
|
|
79
|
+
### 项目管理
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
zt-devops-cli project list
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### ZTeam 项目
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
zt-devops-cli zteam-project list --project f39507
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 迭代管理
|
|
92
|
+
|
|
93
|
+
**迭代列表**
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
zt-devops-cli sprint list --project k64352
|
|
97
|
+
# 或与根命令 -p 组合(本子命令 -p 可选)
|
|
98
|
+
zt-devops-cli -p k64352 sprint list
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**迭代提测列表**
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
zt-devops-cli sprint test-list --project b9f157 \
|
|
105
|
+
--search "BSC_V26.701.01" \
|
|
106
|
+
--num 1 \
|
|
107
|
+
--size 10
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
可选筛选:`--result`、`--create-user`、`--create-time`、`--principal`、`--obj-id`(均可重复传入)。
|
|
111
|
+
|
|
112
|
+
**创建迭代**
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
zt-devops-cli sprint create --project k64352 \
|
|
116
|
+
--title "迭代名称" \
|
|
117
|
+
--start-date 2026-04-04 \
|
|
118
|
+
--end-date 2026-05-30 \
|
|
119
|
+
--purpose "迭代目标"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
日期可用简写:`-s` / `--start-date`、`-e` / `--end-date`。可选:`--test-start`、`--test-end`。
|
|
123
|
+
|
|
124
|
+
**启用 / 删除 / 完成迭代**
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
zt-devops-cli sprint start --project k64352 -i <sprint-id>
|
|
128
|
+
zt-devops-cli sprint delete --project k64352 -i <sprint-id>
|
|
129
|
+
zt-devops-cli sprint done --project k64352 -i <sprint-id>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
`-i` 即 `--sprint-id`。`delete` / `done` 会交互确认。
|
|
133
|
+
|
|
134
|
+
### 任务管理
|
|
135
|
+
|
|
136
|
+
**查询任务列表(TASK)**
|
|
137
|
+
|
|
138
|
+
子命令上 `-p` **必填**。另须 `--start-date`、`--end-date`。可选:`--creator`、`--num`、`--size`、`--remember` / `--no-remember`(默认 `--no-remember`)。
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
zt-devops-cli task list -p f39507 \
|
|
142
|
+
--start-date 2026-04-01 \
|
|
143
|
+
--end-date 2026-04-30 \
|
|
144
|
+
--creator zt07905
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**创建任务(TASK)**
|
|
148
|
+
|
|
149
|
+
子命令上 `-p` **必填**。另须 `-t` / `--title`、`--owner`、`--estimate-start`、`--estimate-end`、`--zteam-project-id`(平台项目 ID 来自 `project list`,ZTeam 项目 ID 来自 `zteam-project list`)。
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
zt-devops-cli task create \
|
|
153
|
+
-p "<project-id>" \
|
|
154
|
+
--title "<任务标题>" \
|
|
155
|
+
--owner zt07905 \
|
|
156
|
+
--estimate-start 2026-04-01 \
|
|
157
|
+
--estimate-end 2026-04-30 \
|
|
158
|
+
--zteam-project-id "<zteam-project-id>"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
可选:`--model-type-id`、`--priority`、`--editor-type`、`--desc`、`--parent-id`、`--demand-classify`、`--origin-hours`、`--remain-hours`;扩展字段使用 `--field fieldId=value`(可多次)。
|
|
162
|
+
|
|
163
|
+
### 缺陷管理
|
|
164
|
+
|
|
165
|
+
**查询缺陷列表(BUG)**
|
|
166
|
+
|
|
167
|
+
子命令上 `-p` **必填**。与页面表格筛选相近。常用可选:`--num`、`--size`、`--remember` / `--no-remember`(默认 `--no-remember`)、`--operator`(逗号分隔多账号)、`--zteam-project`、`--owner-field` / `--owner`、`--state`(状态 ID,可先执行 `bug get-states`)、`--creator`、`--create-date` 或 `--create-start` + `--create-end`(二者须同时出现)。
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
zt-devops-cli bug list -p b9f157 \
|
|
171
|
+
--num 1 \
|
|
172
|
+
--size 20
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**查询缺陷「状态」可选项**
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
zt-devops-cli bug get-states -p b9f157
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
默认 `--all`;若与页面不一致可尝试 `--no-all`。
|
|
182
|
+
|
|
183
|
+
**查询缺陷「发现阶段」可选项**
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
zt-devops-cli bug get-discovery-phases -p b9f157
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
默认 `--no-all`(与缺陷表 twBug 一致)。模板不同时可传 `--field-id`。若与页面不一致可试 `--all`。
|
|
190
|
+
|
|
191
|
+
**查询缺陷「解决方法」可选项**
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
zt-devops-cli bug get-solution-methods -p b9f157
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
默认 `--no-all`。可选 `--field-id`。
|
|
198
|
+
|
|
199
|
+
**查询缺陷「类型」可选项**
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
zt-devops-cli bug get-types -p b9f157
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
默认 `--no-all`。可选 `--field-id`。
|
|
206
|
+
|
|
207
|
+
**创建缺陷(BUG)**
|
|
208
|
+
|
|
209
|
+
对应 `POST .../issue/{project}`。`--owner` 同时写入经办人与缺陷责任人;迭代、ZTeam、严重程度、类型、发现阶段、解决方法等使用代码内固定 `fieldId`(与团队抓包一致)。若你们项目字段不同,需改源码中的 `instance_values` 映射。
|
|
210
|
+
|
|
211
|
+
| 选项 | 说明 |
|
|
212
|
+
|------|------|
|
|
213
|
+
| `-p` / `--project` | 项目 ID(子命令必填) |
|
|
214
|
+
| `--zteam-project-id` | ZTeam 项目 ID |
|
|
215
|
+
| `--sprint-id` | 关联迭代 ID;可不关联时传空字符串 `""` |
|
|
216
|
+
| `-t` / `--title` | 标题 |
|
|
217
|
+
| `--severity` / `--type` / `--discovery-phase` | 与表单选项的 **value** 一致(非中文展示名) |
|
|
218
|
+
| `--solution-method` | 可选;解决方法字段的 value |
|
|
219
|
+
| `--owner` | 账号 |
|
|
220
|
+
| `--priority` | 默认 `CENTRAL` |
|
|
221
|
+
| `--desc` / `--desc-editor-type` | 描述 HTML 与编辑器类型,默认带四段模板 |
|
|
222
|
+
| `--parent-id`、`--model-type-id`、`--demand-classify` | 可选或保持默认 |
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
zt-devops-cli bug create -p b9f157 \
|
|
226
|
+
--zteam-project-id 15678224 \
|
|
227
|
+
--sprint-id 3129a9cd7315457eb2963bfe19919e72 \
|
|
228
|
+
-t "缺陷标题示例" \
|
|
229
|
+
--owner zt07905 \
|
|
230
|
+
--severity 9Clfj3I8fR \
|
|
231
|
+
--type bgEHPFOjFt \
|
|
232
|
+
--discovery-phase vENjmMhXMC
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**缺陷工作流(接受 / 已解决 / 已验证 / 关闭 / 重新打开 / 拒绝)**
|
|
236
|
+
|
|
237
|
+
均调用 `POST .../issue_direction/{project}/next`。各动作对应的 `nextNodeId` 写死在 `api.BUG_DIRECTION_NEXT_NODE_IDS`(与某项目浏览器抓包一致);若你们项目工作流节点不同,需改源码中该表。
|
|
238
|
+
|
|
239
|
+
子命令参数(Click 下均为**该子命令**上的必填项):
|
|
240
|
+
|
|
241
|
+
- **`-i` / `--bug-id`**:缺陷 ID。
|
|
242
|
+
- **`-p` / `--project`**:项目 ID(须在子命令上显式传入,勿依赖仅写在根命令上的 `-p`)。
|
|
243
|
+
- **`--operator`**:经办人账号,英文逗号分隔多个。
|
|
244
|
+
- **`--comment`**:可选,流转备注(富文本 HTML,例如 `'<p>说明</p>'`)。
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
zt-devops-cli bug accept -p b9f157 -i <bug-id> --operator zt07905 --comment '<p>说明</p>'
|
|
248
|
+
zt-devops-cli bug resolve -p b9f157 -i <bug-id> --operator zt07905
|
|
249
|
+
zt-devops-cli bug verify -p b9f157 -i <bug-id> --operator zt07905,user02
|
|
250
|
+
zt-devops-cli bug close -p b9f157 -i <bug-id> --operator zt07905
|
|
251
|
+
zt-devops-cli bug reopen -p b9f157 -i <bug-id> --operator zt07905
|
|
252
|
+
zt-devops-cli bug reject -p b9f157 -i <bug-id> --operator zt07905
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
在 `~/.zt-devops-cli/config.yaml` 中可写默认项目(便于省略**允许默认合并**的子命令上的 `-p`):
|
|
256
|
+
|
|
257
|
+
```yaml
|
|
258
|
+
default_project: b9f157
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**删除缺陷**
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
zt-devops-cli bug delete -p b9f157 -i <bug-id>
|
|
265
|
+
zt-devops-cli bug delete -p b9f157 -i <bug-id> -y
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
`-y` / `--yes` 跳过交互确认。
|
|
269
|
+
|
|
270
|
+
### 需求 / 工作项
|
|
271
|
+
|
|
272
|
+
**查询自定义字段下拉可选项**
|
|
273
|
+
|
|
274
|
+
子命令上 `-p`、`--field-id`、`--classify` 均为必填。用于按字段与工作项类型拉取与页面 `issue_field_value/.../option/{fieldId}` 一致的选项列表(`classify` 与页面一致,如 `BUG`、`TASK`、`STORY`)。
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
zt-devops-cli issue field-options -p b9f157 \
|
|
278
|
+
--field-id <fieldId> \
|
|
279
|
+
--classify BUG
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
`--all` / `--no-all`:是否对应页面 `all` 参数(默认 `--no-all`)。
|
|
283
|
+
|
|
284
|
+
## 配置
|
|
285
|
+
|
|
286
|
+
- Cookie 缓存:`~/.zt-devops-cli/cookies.json`
|
|
287
|
+
- 配置文件:`~/.zt-devops-cli/config.yaml`(常用键:`default_project`,解析时等同「根命令 `-p`」参与合并;另支持 `browser_channel`,默认 `chromium`)
|
|
@@ -0,0 +1,276 @@
|
|
|
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
|
|
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` 为可选的命令**生效,解析顺序为「子命令 `-p` → 根命令 `-p` → `config.yaml` 的 `default_project`」 |
|
|
36
|
+
| `-o` / `--output` | `json`(默认)或 `human`;列表类在 `human` 下为表格,部分写操作在 `human` 下仅输出简短成功信息 |
|
|
37
|
+
|
|
38
|
+
**注意(Click 解析)**:若子命令将 `-p` / `--project` 标为必填(如 `bug list`、`task list`、`bug create`、缺陷流转等),则必须在**该子命令后**再写一遍 `-p`,根命令上的 `-p` 不会自动填入子命令参数。
|
|
39
|
+
|
|
40
|
+
示例(`sprint list` 的 `-p` 可选,可用根级 `-p`):
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
zt-devops-cli -o human -p k64352 sprint list
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
示例(`bug list` 的 `-p` 为子命令必填,须写在 `bug list` 之后):
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
zt-devops-cli -o human bug list -p b9f157 --num 1 --size 20
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 登录
|
|
53
|
+
|
|
54
|
+
首次或 cookie 失效时会走浏览器登录流程;成功后将 cookie 写入本地缓存。
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
zt-devops-cli login
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
需要弹出窗口手动登录时(无环境变量自动填表时):
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
zt-devops-cli login --headed
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
无头自动登录依赖环境变量 `ZT_SSO_USERNAME`、`ZT_SSO_PASSWORD`(见 `auth` 模块说明)。
|
|
67
|
+
|
|
68
|
+
### 项目管理
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
zt-devops-cli project list
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### ZTeam 项目
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
zt-devops-cli zteam-project list --project f39507
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 迭代管理
|
|
81
|
+
|
|
82
|
+
**迭代列表**
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
zt-devops-cli sprint list --project k64352
|
|
86
|
+
# 或与根命令 -p 组合(本子命令 -p 可选)
|
|
87
|
+
zt-devops-cli -p k64352 sprint list
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**迭代提测列表**
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
zt-devops-cli sprint test-list --project b9f157 \
|
|
94
|
+
--search "BSC_V26.701.01" \
|
|
95
|
+
--num 1 \
|
|
96
|
+
--size 10
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
可选筛选:`--result`、`--create-user`、`--create-time`、`--principal`、`--obj-id`(均可重复传入)。
|
|
100
|
+
|
|
101
|
+
**创建迭代**
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
zt-devops-cli sprint create --project k64352 \
|
|
105
|
+
--title "迭代名称" \
|
|
106
|
+
--start-date 2026-04-04 \
|
|
107
|
+
--end-date 2026-05-30 \
|
|
108
|
+
--purpose "迭代目标"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
日期可用简写:`-s` / `--start-date`、`-e` / `--end-date`。可选:`--test-start`、`--test-end`。
|
|
112
|
+
|
|
113
|
+
**启用 / 删除 / 完成迭代**
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
zt-devops-cli sprint start --project k64352 -i <sprint-id>
|
|
117
|
+
zt-devops-cli sprint delete --project k64352 -i <sprint-id>
|
|
118
|
+
zt-devops-cli sprint done --project k64352 -i <sprint-id>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`-i` 即 `--sprint-id`。`delete` / `done` 会交互确认。
|
|
122
|
+
|
|
123
|
+
### 任务管理
|
|
124
|
+
|
|
125
|
+
**查询任务列表(TASK)**
|
|
126
|
+
|
|
127
|
+
子命令上 `-p` **必填**。另须 `--start-date`、`--end-date`。可选:`--creator`、`--num`、`--size`、`--remember` / `--no-remember`(默认 `--no-remember`)。
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
zt-devops-cli task list -p f39507 \
|
|
131
|
+
--start-date 2026-04-01 \
|
|
132
|
+
--end-date 2026-04-30 \
|
|
133
|
+
--creator zt07905
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**创建任务(TASK)**
|
|
137
|
+
|
|
138
|
+
子命令上 `-p` **必填**。另须 `-t` / `--title`、`--owner`、`--estimate-start`、`--estimate-end`、`--zteam-project-id`(平台项目 ID 来自 `project list`,ZTeam 项目 ID 来自 `zteam-project list`)。
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
zt-devops-cli task create \
|
|
142
|
+
-p "<project-id>" \
|
|
143
|
+
--title "<任务标题>" \
|
|
144
|
+
--owner zt07905 \
|
|
145
|
+
--estimate-start 2026-04-01 \
|
|
146
|
+
--estimate-end 2026-04-30 \
|
|
147
|
+
--zteam-project-id "<zteam-project-id>"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
可选:`--model-type-id`、`--priority`、`--editor-type`、`--desc`、`--parent-id`、`--demand-classify`、`--origin-hours`、`--remain-hours`;扩展字段使用 `--field fieldId=value`(可多次)。
|
|
151
|
+
|
|
152
|
+
### 缺陷管理
|
|
153
|
+
|
|
154
|
+
**查询缺陷列表(BUG)**
|
|
155
|
+
|
|
156
|
+
子命令上 `-p` **必填**。与页面表格筛选相近。常用可选:`--num`、`--size`、`--remember` / `--no-remember`(默认 `--no-remember`)、`--operator`(逗号分隔多账号)、`--zteam-project`、`--owner-field` / `--owner`、`--state`(状态 ID,可先执行 `bug get-states`)、`--creator`、`--create-date` 或 `--create-start` + `--create-end`(二者须同时出现)。
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
zt-devops-cli bug list -p b9f157 \
|
|
160
|
+
--num 1 \
|
|
161
|
+
--size 20
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**查询缺陷「状态」可选项**
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
zt-devops-cli bug get-states -p b9f157
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
默认 `--all`;若与页面不一致可尝试 `--no-all`。
|
|
171
|
+
|
|
172
|
+
**查询缺陷「发现阶段」可选项**
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
zt-devops-cli bug get-discovery-phases -p b9f157
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
默认 `--no-all`(与缺陷表 twBug 一致)。模板不同时可传 `--field-id`。若与页面不一致可试 `--all`。
|
|
179
|
+
|
|
180
|
+
**查询缺陷「解决方法」可选项**
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
zt-devops-cli bug get-solution-methods -p b9f157
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
默认 `--no-all`。可选 `--field-id`。
|
|
187
|
+
|
|
188
|
+
**查询缺陷「类型」可选项**
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
zt-devops-cli bug get-types -p b9f157
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
默认 `--no-all`。可选 `--field-id`。
|
|
195
|
+
|
|
196
|
+
**创建缺陷(BUG)**
|
|
197
|
+
|
|
198
|
+
对应 `POST .../issue/{project}`。`--owner` 同时写入经办人与缺陷责任人;迭代、ZTeam、严重程度、类型、发现阶段、解决方法等使用代码内固定 `fieldId`(与团队抓包一致)。若你们项目字段不同,需改源码中的 `instance_values` 映射。
|
|
199
|
+
|
|
200
|
+
| 选项 | 说明 |
|
|
201
|
+
|------|------|
|
|
202
|
+
| `-p` / `--project` | 项目 ID(子命令必填) |
|
|
203
|
+
| `--zteam-project-id` | ZTeam 项目 ID |
|
|
204
|
+
| `--sprint-id` | 关联迭代 ID;可不关联时传空字符串 `""` |
|
|
205
|
+
| `-t` / `--title` | 标题 |
|
|
206
|
+
| `--severity` / `--type` / `--discovery-phase` | 与表单选项的 **value** 一致(非中文展示名) |
|
|
207
|
+
| `--solution-method` | 可选;解决方法字段的 value |
|
|
208
|
+
| `--owner` | 账号 |
|
|
209
|
+
| `--priority` | 默认 `CENTRAL` |
|
|
210
|
+
| `--desc` / `--desc-editor-type` | 描述 HTML 与编辑器类型,默认带四段模板 |
|
|
211
|
+
| `--parent-id`、`--model-type-id`、`--demand-classify` | 可选或保持默认 |
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
zt-devops-cli bug create -p b9f157 \
|
|
215
|
+
--zteam-project-id 15678224 \
|
|
216
|
+
--sprint-id 3129a9cd7315457eb2963bfe19919e72 \
|
|
217
|
+
-t "缺陷标题示例" \
|
|
218
|
+
--owner zt07905 \
|
|
219
|
+
--severity 9Clfj3I8fR \
|
|
220
|
+
--type bgEHPFOjFt \
|
|
221
|
+
--discovery-phase vENjmMhXMC
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**缺陷工作流(接受 / 已解决 / 已验证 / 关闭 / 重新打开 / 拒绝)**
|
|
225
|
+
|
|
226
|
+
均调用 `POST .../issue_direction/{project}/next`。各动作对应的 `nextNodeId` 写死在 `api.BUG_DIRECTION_NEXT_NODE_IDS`(与某项目浏览器抓包一致);若你们项目工作流节点不同,需改源码中该表。
|
|
227
|
+
|
|
228
|
+
子命令参数(Click 下均为**该子命令**上的必填项):
|
|
229
|
+
|
|
230
|
+
- **`-i` / `--bug-id`**:缺陷 ID。
|
|
231
|
+
- **`-p` / `--project`**:项目 ID(须在子命令上显式传入,勿依赖仅写在根命令上的 `-p`)。
|
|
232
|
+
- **`--operator`**:经办人账号,英文逗号分隔多个。
|
|
233
|
+
- **`--comment`**:可选,流转备注(富文本 HTML,例如 `'<p>说明</p>'`)。
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
zt-devops-cli bug accept -p b9f157 -i <bug-id> --operator zt07905 --comment '<p>说明</p>'
|
|
237
|
+
zt-devops-cli bug resolve -p b9f157 -i <bug-id> --operator zt07905
|
|
238
|
+
zt-devops-cli bug verify -p b9f157 -i <bug-id> --operator zt07905,user02
|
|
239
|
+
zt-devops-cli bug close -p b9f157 -i <bug-id> --operator zt07905
|
|
240
|
+
zt-devops-cli bug reopen -p b9f157 -i <bug-id> --operator zt07905
|
|
241
|
+
zt-devops-cli bug reject -p b9f157 -i <bug-id> --operator zt07905
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
在 `~/.zt-devops-cli/config.yaml` 中可写默认项目(便于省略**允许默认合并**的子命令上的 `-p`):
|
|
245
|
+
|
|
246
|
+
```yaml
|
|
247
|
+
default_project: b9f157
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**删除缺陷**
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
zt-devops-cli bug delete -p b9f157 -i <bug-id>
|
|
254
|
+
zt-devops-cli bug delete -p b9f157 -i <bug-id> -y
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
`-y` / `--yes` 跳过交互确认。
|
|
258
|
+
|
|
259
|
+
### 需求 / 工作项
|
|
260
|
+
|
|
261
|
+
**查询自定义字段下拉可选项**
|
|
262
|
+
|
|
263
|
+
子命令上 `-p`、`--field-id`、`--classify` 均为必填。用于按字段与工作项类型拉取与页面 `issue_field_value/.../option/{fieldId}` 一致的选项列表(`classify` 与页面一致,如 `BUG`、`TASK`、`STORY`)。
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
zt-devops-cli issue field-options -p b9f157 \
|
|
267
|
+
--field-id <fieldId> \
|
|
268
|
+
--classify BUG
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
`--all` / `--no-all`:是否对应页面 `all` 参数(默认 `--no-all`)。
|
|
272
|
+
|
|
273
|
+
## 配置
|
|
274
|
+
|
|
275
|
+
- Cookie 缓存:`~/.zt-devops-cli/cookies.json`
|
|
276
|
+
- 配置文件:`~/.zt-devops-cli/config.yaml`(常用键:`default_project`,解析时等同「根命令 `-p`」参与合并;另支持 `browser_channel`,默认 `chromium`)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "zt-devops-cli"
|
|
7
|
-
version = "0.1
|
|
7
|
+
version = "0.2.1"
|
|
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 = "
|
|
19
|
+
zt-devops-cli = "zt_devops_cli.cli:main"
|
|
20
20
|
|
|
21
21
|
[tool.pytest.ini_options]
|
|
22
22
|
testpaths = ["tests"]
|