@cloudglab/zentao-cli 0.1.3 → 0.1.5

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +121 -263
  3. package/dist/api/execution.d.ts +33 -0
  4. package/dist/api/execution.js +363 -0
  5. package/dist/api/execution.js.map +1 -1
  6. package/dist/api/index.js +1 -1
  7. package/dist/api/index.js.map +1 -1
  8. package/dist/api/statistics.d.ts +38 -1
  9. package/dist/api/statistics.js +307 -1
  10. package/dist/api/statistics.js.map +1 -1
  11. package/dist/api/task.js +24 -5
  12. package/dist/api/task.js.map +1 -1
  13. package/dist/cli.js +19 -3
  14. package/dist/cli.js.map +1 -1
  15. package/dist/core/http.d.ts +1 -0
  16. package/dist/core/http.js +26 -0
  17. package/dist/core/http.js.map +1 -1
  18. package/dist/core/roles.js +1 -1
  19. package/dist/core/roles.js.map +1 -1
  20. package/dist/install.d.ts +2 -0
  21. package/dist/install.js +127 -0
  22. package/dist/install.js.map +1 -0
  23. package/dist/tools/execution.js +8 -0
  24. package/dist/tools/execution.js.map +1 -1
  25. package/dist/tools/statistics.js +8 -0
  26. package/dist/tools/statistics.js.map +1 -1
  27. package/dist/version.d.ts +1 -1
  28. package/dist/version.js +1 -1
  29. package/package.json +10 -3
  30. package/skills/zentao-cli/SKILL.md +165 -0
  31. package/skills/zentao-cli/reference/bug.md +93 -0
  32. package/skills/zentao-cli/reference/build.md +21 -0
  33. package/skills/zentao-cli/reference/cli.md +25 -0
  34. package/skills/zentao-cli/reference/execution.md +38 -0
  35. package/skills/zentao-cli/reference/install.md +68 -0
  36. package/skills/zentao-cli/reference/overview.md +24 -0
  37. package/skills/zentao-cli/reference/plan.md +20 -0
  38. package/skills/zentao-cli/reference/product.md +14 -0
  39. package/skills/zentao-cli/reference/project.md +14 -0
  40. package/skills/zentao-cli/reference/statistics.md +30 -0
  41. package/skills/zentao-cli/reference/story.md +22 -0
  42. package/skills/zentao-cli/reference/task.md +21 -0
  43. package/skills/zentao-cli/reference/testcase.md +20 -0
  44. package/skills/zentao-cli/reference/testtask.md +20 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## 0.1.5 - 2026-06-06
6
+
7
+ ### Added
8
+
9
+ - 新增 `zentao install` / `zentao update` 内置命令,一键安装或更新 CLI 与 skill,并校验禅道配置。
10
+ - 新增 `getExecutionDynamic`,支持按执行 ID 近似读取执行动态摘要。
11
+ - 新增 `getExecutionDailyBugStats`,输出迭代每日 Bug、任务、参与人员和问题明细统计报告。
12
+ - 新增 `getMyWeeklyActivity`,支持上周、本周、最近 N 天、单日和自定义日期范围的个人阶段性工作清单。
13
+ - 新增 Vitest 测试体系、覆盖率配置和 lefthook pre-commit 检查入口。
14
+ - 新增核心函数、API 封装、工具注册、配置、认证和 HTTP 客户端测试。
15
+
16
+ ### Changed
17
+
18
+ - `getMyTasks` 改为尽量拉取完整任务列表后在客户端按状态和分页过滤,以适配部分禅道部署忽略查询参数的问题。
19
+ - QA 角色新增任务相关命令入口。
20
+ - npm 发布文件列表加入 `skills` 目录,确保 skill 随包发布。
21
+ - README、skill 和 reference 文档同步到新增安装、动态和统计能力。
22
+
23
+ ## 0.1.4 - 2026-06-05
24
+
25
+ ### Changed
26
+
27
+ - 触发一次真实的 npm trusted publishing 自动发布验证。
28
+
5
29
  ## 0.1.3 - 2026-06-05
6
30
 
7
31
  ### Fixed
package/README.md CHANGED
@@ -1,319 +1,177 @@
1
1
  # @cloudglab/zentao-cli
2
2
 
3
- 基于 TypeScript 重建的禅道命令行工具,优先适配当前禅道 `18.5` 的 REST v1 API。
4
-
5
3
  ![zentao-cli hero](./assets/readme/zentao-cli-hero.png)
6
4
 
7
- > 把任务、Bug、需求、测试、计划、构建、发布这些禅道操作,直接接进本地 `zentao` 命令,给命令行、脚本和 skill 调用。
5
+ 把禅道任务、Bug、执行、构建、动态和统计能力接到命令行,方便在 CI、脚本和 AI Skill 里直接调用。
8
6
 
9
- ## 亮点
7
+ ## 安装方式
10
8
 
11
- - `60` CLI 命令,覆盖任务、Bug、需求、执行、测试、计划、构建、发布、搜索等核心场景
12
- - `4` 个内置角色:`Dev / QA / PM / Full`
13
- - 基于 TypeScript 重建,优先适配禅道 `18.5` REST v1 API
14
- - 发布产物运行时目标:`Node.js >= 16`
15
- - 默认写保护,写操作需要显式开启并确认,更适合接入智能体和自动化流程
9
+ ### 一键安装 CLI + Skill
16
10
 
17
- ## 快速开始
11
+ ```bash
12
+ npx -y @cloudglab/zentao-cli@latest install
13
+ ```
18
14
 
19
- 环境要求:`Node.js >= 16`
15
+ 该命令会依次安装全局 CLI、安装 skill,并在禅道配置缺失或登录校验失败时引导输入配置。
20
16
 
21
- ### 安装
17
+ 后续更新也可以直接运行:
22
18
 
23
19
  ```bash
24
- # 运行时要求:Node.js >= 16
25
-
26
- # 直接运行
27
- npx -y @cloudglab/zentao-cli@latest
28
-
29
- # 全局安装
30
- npm i -g @cloudglab/zentao-cli@latest
20
+ zentao update
31
21
  ```
32
22
 
33
- ### 配置
23
+ ### CI / 脚本里临时使用
34
24
 
35
25
  ```bash
36
- export ZENTAO_URL="https://your-zentao.example.com"
37
- export ZENTAO_USERNAME="your-account"
38
- export ZENTAO_PASSWORD="your-password"
39
- export ZENTAO_API_VERSION="v1"
40
-
41
- # 可选:非标准部署时指定完整 API 基础地址
42
- # export ZENTAO_API_BASE_URL="https://your-zentao.example.com/custom/api.php/v1"
26
+ npx -y @cloudglab/zentao-cli@latest --help
27
+ npx -y @cloudglab/zentao-cli@latest --role qa getMyTasks --status all --limit 20
43
28
  ```
44
29
 
45
- ### 运行
30
+ ### 全局安装
46
31
 
47
32
  ```bash
48
- # 查看帮助 / 版本
49
- zentao help
33
+ npm i -g @cloudglab/zentao-cli@latest
50
34
  zentao --version
51
-
52
- # 默认 full 角色
53
- zentao list
54
- zentao getMyTasks --status all --limit 20
55
-
56
- # 按角色启动
57
- zentao --role dev getMyTasks --status all
58
- zentao --role qa getMyBugs --limit 50
59
- zentao --role pm getProducts
60
-
61
- # 也可以直接用 npx
62
- npx -y @cloudglab/zentao-cli@latest --role qa getMyBugs --limit 50
35
+ zentao version
36
+ zentao help
63
37
  ```
64
38
 
65
- ## 使用方式
66
-
67
- ### CLI
68
-
69
- 适合手动查数据、排查问题、批量执行脚本。
70
-
71
- 常见场景:
72
- - 查我的任务 / Bug / 统计
73
- - 查询需求、执行、计划、构建、发布
74
- - 创建或更新任务、测试用例、测试单
75
- - 做任务流转、Bug 处理、批量排期、回填工时、同步状态
76
- - 通过 `Dev / QA / PM / Full` 角色入口提供差异化能力
77
-
78
- ### 智能体 / Skill 接入建议
79
-
80
- 推荐顺序:
81
-
82
- 1. 先检查本机有没有 `zentao`
83
- 2. 没有就安装:`npm i -g @cloudglab/zentao-cli@latest`
84
- 3. skill 内优先调用本地 `zentao`
85
- 4. 只在不能安装时,才退回 `npx -y @cloudglab/zentao-cli@latest`
86
-
87
- 常用检查命令:
39
+ ### Skill 安装
88
40
 
89
41
  ```bash
90
- command -v zentao
91
- zentao --version
42
+ npx skills add @cloudglab/zentao-cli -g
92
43
  ```
93
44
 
94
- skill / 自动化里推荐直接执行:
45
+ Skill / Agent 里推荐优先调用本地命令:
95
46
 
96
47
  ```bash
97
48
  zentao --role qa getMyBugs --limit 50
98
- zentao getProductBugs --productId 123 --status all --limit 100
99
49
  ```
100
50
 
101
- ### Skill
102
-
103
- 适合把当前能力包装成可复用的 AI Skill,对外推广更友好。
104
-
105
- 相关文档:
106
- - `skills/zentao-cli/reference/overview.md`
107
- - `skills/zentao-cli/reference/install.md`
108
-
109
- 安装 skill 时,统一走:
51
+ 本地没有安装时再退回:
110
52
 
111
53
  ```bash
112
- npx skills add @cloudglab/zentao-cli -g
54
+ npx -y @cloudglab/zentao-cli@latest --role qa getMyBugs --limit 50
113
55
  ```
114
56
 
115
- skill 内部入口建议:
116
-
117
- - 优先:`zentao`
118
- - 或按角色:`zentao --role qa`
119
- - 无本地安装时兜底:`npx -y @cloudglab/zentao-cli@latest`
120
-
121
- 适合场景:
122
- - 给团队成员提供统一入口
123
- - 给非开发用户提供更低门槛的禅道操作方式
124
- - 做内部推广和标准化接入
125
-
126
- ## 当前 MVP 能力
127
-
128
- - token 登录:仅在明确鉴权失败时才从明文密码回退到 MD5
129
- - 登录错误分类:区分账号密码错误、token 接口不存在、网络失败、服务端异常
130
- - 自动清洗 PHP warning + JSON 混合响应
131
- - `getMyTasks`
132
- - `getTaskDetail`
133
- - `getBugDetail`
134
- - `getStoryDetail`
135
- - `getExecutionDetail`
136
- - `getExecutionBugs`
137
- - `getMyBugs`
138
- - `getProductBugs`
139
- - `getComments`
140
- - 写操作 preview:`updateTask`、`finishTask`、`resolveBug`、`addComment`
141
- - `getMyProfile`
142
- - `getMyTaskStatistics`
143
- - `getMyBugStatistics`
144
- - `getStoryRelatedBugs`
145
- - `getBugRelatedStory`
146
- - `getDevelopmentContext`
147
- - `getProducts` / `getProductDetail`
148
- - `getProjects` / `getProjectDetail`
149
- - `getProjectExecutions` / `getExecutionBuilds`
150
- - `getProductStories`
151
- - `getProductTestCases` / `getTestCaseDetail`
152
- - `getTestTasks` / `getTestTaskDetail`
153
- - `getPrograms` / `getProgramDetail`
154
- - `getProductPlans` / `getPlanDetail`
155
- - `getProjectBuilds` / `getBuildDetail`
156
- - `getProjectReleases`
157
- - `searchStories`
158
- - `searchStoriesByProductName`
159
- - `updateStory` / `changeStory`(默认 preview)
160
- - `createTaskFromStory` / `createTaskFromBug`(默认 preview)
161
- - `linkStoriesToPlan` / `unlinkStoriesFromPlan`(默认 preview)
162
- - `linkBugsToPlan` / `unlinkBugsFromPlan`(默认 preview)
163
- - `updateExecution` / `startExecution` / `closeExecution` / `suspendExecution` / `activateExecution` / `putoffExecution`(默认 preview)
164
- - `createBuild` / `updateBuild`(默认 preview)
165
- - `createTestCase` / `updateTestCase`(默认 preview)
166
- - `createTestTask` / `updateTestTask`(默认 preview)
167
-
168
- `updateExecution` 按禅道 18.5 REST v1 文档/源码需要保留/传入:
169
-
170
- - `project`
171
- - `name`
172
- - `code`
173
- - `begin`
174
- - `end`
175
-
176
- 注意:`updateExecution` 在禅道 18.5 且后台启用代号时存在服务端源码问题:`api/v1/entries/execution.php` 中 `$fields .= 'code'` 缺少前置逗号,导致请求体里的 `code` 不会进入服务端 `$_POST`,服务端会误报 `『迭代代号』不能为空。`。客户端无法稳定绕过;工具仍保留,但调用时会直接返回该诊断错误,不做真实写入。
177
-
178
- `createBuild` 当前按禅道 18.5 实机/参考包契约使用 `POST /projects/{project}/builds`,通常需要提供:
179
-
180
- - `project`
181
- - `execution`
182
- - `product`
183
- - `name`
184
- - `builder`
185
-
186
- 补充说明:
187
-
188
- - `createTaskFromStory` / `createTaskFromBug` 在当前实例上实机验证发现通常需要额外提供:
189
- - `assignedTo`
190
- - `estStarted`
191
- - `deadline`
192
- - `createTaskFromBug` 当前只保证:
193
- - 基于 Bug 预填任务内容并尝试创建任务
194
- - 不保证创建后自动建立 Bug 关联
195
- - 角色工具过滤:`full` / `dev` / `qa` / `pm`
196
- - 写操作保护 helper:默认禁用写操作,后续写工具必须配合 `ZENTAO_ENABLE_WRITE=true` 和 `confirm: true`;已知 18.5 不支持或服务端有缺陷的写工具会保留入口,但调用时直接返回明确诊断错误。
197
- - Phase 3B 写工具(execution / build / testcase / testtask)默认同样返回 preview,真实执行仍需 `ZENTAO_ENABLE_WRITE=true` + `confirm=true`:
198
- - execution:`updateExecution` / `startExecution` / `closeExecution` / `suspendExecution` / `activateExecution` / `putoffExecution`
199
- - build:`createBuild` / `updateBuild`
200
- - testcase:`createTestCase` / `updateTestCase`
201
- - testtask:`createTestTask` / `updateTestTask`
202
- - 角色权限:
203
- - `full` 拥有 `execution-write` + `build-write` + `testcase-write` + `testtask-write`
204
- - `dev` 拥有 `execution-write` + `build-write`
205
- - `pm` 仅拥有 `execution-write`
206
- - `qa` 拥有 `testcase-write` + `testtask-write`
207
- - `createTestCase` / `updateTestCase` 当前按禅道 18.5 REST v1 契约:
208
- - 创建路径:`POST /products/{productId}/testcases`
209
- - 更新路径:`PUT /testcases/{testCaseId}`
210
- - `steps` 数组每项形如 `{ desc, expect, type? }`,`type` 支持 `step` / `item` / `group`,默认 `step`
211
- - `module` / `story` 允许传 `0` 表示无模块 / 无关联需求
212
- - `project` / `execution` / `keywords` 不是禅道 18.5 REST v1 用例创建/更新 entry 接收字段,传入会被服务端忽略;18.5 v1 创建的是产品用例,不会直接绑定项目/执行。
213
- - `createTestTask` 当前按禅道 18.5 REST v1 契约:
214
- - 创建路径:`POST /projects/{project}/testtasks`
215
- - 创建必填:`project` / `productID` / `name` / `build` / `begin` / `end`,`begin` / `end` 格式 `YYYY-MM-DD`
216
- - 创建请求体实际使用 `product` 字段,工具入参保留 `productID` 并在 API 层映射
217
- - `build` 兼容数字 ID 和字符串 ID
218
- - `createTestTask` 当前实例真实写验证通过
219
- - `updateTestTask`:禅道 18.5 v1 `api/v1/entries/testtask.php` 只有 `get/delete`,没有 `put` 更新入口。工具仍保留,但调用时会直接返回该诊断错误,不做真实写入。
220
- - `linkBugsToPlan` 已按 18.5 源码修正为 `POST /productplans/{planId}/linkbugs`。
221
- - `finishTask` 已按 18.5 源码改为 `POST /tasks/{taskId}/finish`,需要 `currentConsumed` / `realStarted` / `finishedDate`。
222
- - `addComment`:禅道 18.5 v1 没有 `comment/comments` entry,当前只支持 `getComments` 从对象详情 actions 回退读取;`addComment` 工具仍保留,但调用时会直接返回该诊断错误。
223
- - token 失效后自动重试一次
224
- - 可选 `ZENTAO_API_BASE_URL`:用于非标准 `/zentao/api.php/v1` 部署
225
-
226
- ## 配置
227
-
228
- 说明:
229
-
230
- - `getMyBugs` 当前默认语义是“跨所有产品指派给我的 Bug”;传 `productId` 时收窄到指定产品。
231
- - `getMyBugStatistics` 默认统计跨所有产品指派给我的 Bug;传 `productId` 时收窄到指定产品。
232
- - `getComments` 在禅道 18.5 上会 fallback 到对象详情里的 `actions`,返回结果会明确标注 `source: "actions-fallback"`。
233
- - `updateTask` / `finishTask` 不会默认修改 `assignedTo`,只有显式传入才会更新指派人。
234
-
235
- 支持环境变量:
57
+ ## 环境变量
236
58
 
237
59
  ```bash
238
- export ZENTAO_URL="https://zentao.cloudglab.cn"
60
+ export ZENTAO_URL="https://your-zentao.example.com"
239
61
  export ZENTAO_USERNAME="your-account"
240
62
  export ZENTAO_PASSWORD="your-password"
241
63
  export ZENTAO_API_VERSION="v1"
242
- # 可选:非标准部署时直接指定完整 API 基础地址
243
- # export ZENTAO_API_BASE_URL="https://zentao.cloudglab.cn/custom/api.php/v1"
244
- ```
245
-
246
- 注意:`ZENTAO_URL` 传根域名即可,不要带 `/zentao`。
247
-
248
- `initZentao` 现在默认只校验并在当前进程内生效,不会自动把密码写入 `~/.zentao/config.json`。
249
- 只有显式传 `save: true` 才会落盘。
250
-
251
- ## 开发
252
64
 
253
- ```bash
254
- pnpm install
255
- pnpm typecheck
256
- pnpm build
65
+ # 可选:非标准部署时指定完整 API 基础地址
66
+ # export ZENTAO_API_BASE_URL="https://your-zentao.example.com/custom/api.php/v1"
257
67
  ```
258
68
 
259
- ## 发布链路
260
-
261
- 已内置 GitHub Actions:当你 push 形如 `v*` 的 tag 时,会自动:
262
-
263
- 1. 安装依赖
264
- 2. 执行 `pnpm typecheck`
265
- 3. 执行 `pnpm build`
266
- 4. 发布 npm 包到 registry
267
- 5. 自动创建对应 GitHub Release
268
-
269
- 工作流文件:
270
-
271
- - `.github/workflows/publish.yml`
272
-
273
- ### 使用前准备
274
-
275
- 1. 先把代码推到 GitHub 仓库
276
- 2. 在 npm 上为 `@cloudglab/zentao-cli` 配置 GitHub Actions trusted publisher,绑定仓库 `cloudglab/zentao-cli`
277
- 3. 确保 `package.json` 中的 `version` 与你要打的 tag 一致
278
-
279
- ### 发版方式
280
-
281
- 例如当前 `package.json` 版本是 `0.1.0`,则发版命令:
69
+ `ZENTAO_URL` 传根域名即可,不要带 `/zentao`。
70
+
71
+ ## 可以这样描述场景
72
+
73
+ 下面这些话可以交给 AI Skill / Agent 转成对应的 zentao-cli 命令。
74
+
75
+ ### 我的任务和 Bug
76
+
77
+ - 我今天的 Bug 有多少?
78
+ - 我今天的任务有多少?
79
+ - 获取我的所有任务。
80
+ - 看我等待中的任务。
81
+ - 看我进行中的任务。
82
+ - 看我已取消的任务。
83
+ - 分页看我的任务。
84
+ - 看我当前指派的 Bug。
85
+ - 统计我当前 Bug 的状态分布。
86
+ - 统计我当前任务的状态分布。
87
+
88
+ ### 一段时间内我做了什么
89
+
90
+ - 分析上周我都干了什么。
91
+ - 查一下我本周解决了多少个 Bug。
92
+ - 查一下 lixm1 上周解决了多少个 Bug。
93
+ - 看 lixm1 最近 3 天做了什么。
94
+ - 看我 2026-05-28 做了什么。
95
+ - 拉一下 2026-05-25 到 2026-05-29 的工作清单。
96
+ - 汇总我上周的评论、指派、流转和解决记录。
97
+ - 按天列出我最近几天处理过的 Bug 和任务。
98
+
99
+ ### 执行 / 迭代统计
100
+
101
+ - 这个迭代有多少个 Bug?
102
+ - 这个迭代今天解决了多少个问题?
103
+ - 分析 execution 2067 的每日迭代执行统计。
104
+ - 生成 1.2.3 迭代日报。
105
+ - 统计某个迭代今天 Bug 和任务情况。
106
+ - 看这个执行的 Bug、任务、参与人员和风险明细。
107
+ - 统计这个迭代的延期 Bug、reopen Bug 和未解决 Bug。
108
+ - 看这个迭代里测试未及时关闭的问题。
109
+ - 看这个迭代里开发今日未及时解决的问题。
110
+ - 看这个迭代的任务总数、完成数、逾期未完成数和工时消耗。
111
+ - 看这个迭代每个人负责了多少 Bug 和任务。
112
+
113
+ ### 禅道页面 URL 查询
114
+
115
+ - 列出 `execution-bug-2130.html` 里面的 Bug。
116
+ - 看 `execution-build-2130.html` 这个执行有哪些版本。
117
+ - 看 `execution-dynamic-2130.html` 这个执行最近的动态。
118
+ - 从禅道 Bug 列表页里提取 execution ID 并列出 Bug。
119
+ - 从禅道版本页里提取 execution ID 并列出构建。
120
+
121
+ ### Bug 和版本
122
+
123
+ - 看某个执行下有哪些版本。
124
+ - 解决 Bug 时关联到某个版本。
125
+ - 查某个执行下已解决但还没关闭的 Bug。
126
+ - 查某个执行下延期处理的 Bug。
127
+ - 查某个执行下 reopen 过的 Bug。
128
+
129
+ ### 需求、产品、项目和测试
130
+
131
+ - 查某个产品下的需求。
132
+ - 查某个产品下的 Bug。
133
+ - 查某个项目下的执行列表。
134
+ - 查某个执行下的构建列表。
135
+ - 查某个产品下的测试用例。
136
+ - 查某个测试单详情。
137
+ - 搜索包含某个关键词的需求。
138
+
139
+ ## 常用命令示例
282
140
 
283
141
  ```bash
284
- git tag v0.1.0
285
- git push origin v0.1.0
142
+ # 我的任务
143
+ zentao --role qa getMyTasks --status all --limit 100
144
+ zentao --role qa getMyTasks --status wait --limit 50
145
+
146
+ # 我的阶段性工作清单
147
+ zentao --role qa getMyWeeklyActivity --account lixm1 --week last
148
+ zentao --role qa getMyWeeklyActivity --account lixm1 --dateRange 最近3天
149
+ zentao --role qa getMyWeeklyActivity --account lixm1 --dateRange 2026-05-25到2026-05-29
150
+
151
+ # 执行 Bug / 构建 / 动态
152
+ zentao --role qa getExecutionBugs --executionId 2130 --limit 100
153
+ zentao --role qa getExecutionBuilds --executionId 2130
154
+ zentao --role qa getExecutionDynamic --executionId 2130
155
+
156
+ # 每日迭代执行统计
157
+ zentao --role qa getExecutionDailyBugStats --executionId 2067 --iterationName 1.2.3迭代
158
+ zentao --role qa getExecutionDailyBugStats --executionId 2067 --iterationName 1.2.3迭代 --date 2026-06-06
286
159
  ```
287
160
 
288
- 工作流会校验:
289
-
290
- - tag `v0.1.0` 是否与 `package.json` 中的 `0.1.0` 一致
161
+ ## 写操作保护
291
162
 
292
- 如果不一致,Action 会直接失败,避免把错误版本发布到 npm。
293
-
294
- ### 推荐顺序
163
+ 默认不写入线上。真实写操作需要同时满足:
295
164
 
296
165
  ```bash
297
- # 1. 修改 package.json version
298
- # 2. 提交代码
299
- # 3. 推送分支
300
- # 4. 打 tag
301
- git tag v0.1.0
302
- git push origin main
303
- git push origin v0.1.0
166
+ export ZENTAO_ENABLE_WRITE=true
304
167
  ```
305
168
 
306
- ### 当前还未自动完成的部分
307
-
308
- 下面这些仍需要你首次手动完成一次:
169
+ 并且命令参数里显式传入 `confirm=true`。
309
170
 
310
- - 初始化本地 git 仓库
311
- - 首次 commit
312
- - 创建 GitHub 仓库并 push 上去
313
- - 在 npm 包侧完成 trusted publisher 绑定
314
-
315
- ## 启动
171
+ ## 更多命令
316
172
 
317
173
  ```bash
318
- pnpm dev
174
+ zentao help
175
+ zentao list
176
+ zentao --role qa list
319
177
  ```
@@ -26,10 +26,15 @@ export interface PutoffExecutionInput {
26
26
  days: number;
27
27
  comment?: string;
28
28
  }
29
+ export interface ExecutionDailyBugStatsInput {
30
+ iterationName?: string;
31
+ date?: string;
32
+ }
29
33
  export declare class ExecutionApi {
30
34
  private readonly http;
31
35
  constructor(http: ZentaoHttpClient);
32
36
  getExecutionDetail(executionId: number): Promise<ZentaoExecution>;
37
+ getExecutionDynamic(executionId: number): Promise<unknown>;
33
38
  getProjectExecutions(projectId: number): Promise<unknown>;
34
39
  getExecutionBuilds(executionId: number): Promise<unknown>;
35
40
  getExecutionBugs(executionId: number, params?: {
@@ -37,10 +42,38 @@ export declare class ExecutionApi {
37
42
  limit?: number;
38
43
  status?: string;
39
44
  }): Promise<unknown>;
45
+ getExecutionDailyBugStats(executionId: number, input?: ExecutionDailyBugStatsInput): Promise<unknown>;
40
46
  updateExecution(executionId: number, update: UpdateExecutionInput): Promise<unknown>;
41
47
  startExecution(executionId: number, payload?: ExecutionActionInput): Promise<unknown>;
42
48
  closeExecution(executionId: number, payload?: ExecutionActionInput): Promise<unknown>;
43
49
  suspendExecution(executionId: number, payload?: ExecutionActionInput): Promise<unknown>;
44
50
  activateExecution(executionId: number, payload?: ExecutionActionInput): Promise<unknown>;
45
51
  putoffExecution(executionId: number, payload: PutoffExecutionInput): Promise<unknown>;
52
+ private getAllExecutionBugs;
53
+ private getAllExecutionTasks;
54
+ private buildParticipantBugStats;
55
+ private getBugOwner;
56
+ private isDelayedBug;
57
+ private resolveUserNames;
58
+ private buildDailyBugNotes;
59
+ private buildSeveritySummary;
60
+ private buildTaskSummary;
61
+ private buildTaskParticipantStats;
62
+ private buildTaskDetails;
63
+ private getTaskOwner;
64
+ private isOverdueUnfinishedTask;
65
+ private buildBugDetails;
66
+ private formatDailyBugStatsReport;
67
+ private formatBugDetailSection;
68
+ private formatTaskDetailSection;
69
+ private formatCountWithRate;
70
+ private formatCountWithRateOrZero;
71
+ private percent;
72
+ private resolveStatsDate;
73
+ private parseDate;
74
+ private toDateOnly;
75
+ private isOnOrBefore;
76
+ private addDays;
77
+ private formatDate;
78
+ private toString;
46
79
  }