zentao-api 0.3.0 → 0.3.1
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.
- package/dist/browser/zentao-api.global.js +2 -2
- package/dist/client/index.d.ts +14 -5
- package/dist/client/index.js +101 -36
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/misc/environment.js +25 -3
- package/dist/misc/errors.d.ts +1 -1
- package/dist/misc/errors.js +1 -1
- package/dist/modules/generated.d.ts +4329 -2
- package/dist/modules/registry.d.ts +4329 -1
- package/dist/modules/registry.js +5 -2
- package/dist/request/index.d.ts +104 -4
- package/dist/request/index.js +41 -21
- package/dist/types/index.d.ts +28 -10
- package/dist/version.js +2 -2
- package/package.json +3 -2
|
@@ -1,7 +1,4335 @@
|
|
|
1
1
|
import type { ModuleAction, ModuleDefinition } from '../types/index.js';
|
|
2
2
|
import { BUILTIN_MODULES } from './generated.js';
|
|
3
3
|
export { BUILTIN_MODULES };
|
|
4
|
-
export declare const MODULES:
|
|
4
|
+
export declare const MODULES: readonly [{
|
|
5
|
+
readonly name: "user";
|
|
6
|
+
readonly display: "用户";
|
|
7
|
+
readonly description: "用户管理,支持获取用户列表、创建用户、获取用户详情、修改用户信息、删除用户";
|
|
8
|
+
readonly actions: readonly [{
|
|
9
|
+
readonly name: "list";
|
|
10
|
+
readonly display: "获取用户列表";
|
|
11
|
+
readonly type: "list";
|
|
12
|
+
readonly method: "get";
|
|
13
|
+
readonly path: "/users";
|
|
14
|
+
readonly resultType: "list";
|
|
15
|
+
readonly pagerGetter: "pager";
|
|
16
|
+
readonly resultGetter: "users";
|
|
17
|
+
readonly params: readonly [{
|
|
18
|
+
readonly name: "browseType";
|
|
19
|
+
readonly required: false;
|
|
20
|
+
readonly type: "string";
|
|
21
|
+
readonly description: "浏览类型";
|
|
22
|
+
readonly options: readonly [{
|
|
23
|
+
readonly value: "inside";
|
|
24
|
+
readonly label: "内部用户";
|
|
25
|
+
}, {
|
|
26
|
+
readonly value: "outside";
|
|
27
|
+
readonly label: "内部用户";
|
|
28
|
+
}];
|
|
29
|
+
}, {
|
|
30
|
+
readonly name: "orderBy";
|
|
31
|
+
readonly required: false;
|
|
32
|
+
readonly type: "string";
|
|
33
|
+
readonly description: "排序";
|
|
34
|
+
readonly options: readonly [{
|
|
35
|
+
readonly value: "id_asc";
|
|
36
|
+
readonly label: "ID 升序";
|
|
37
|
+
}, {
|
|
38
|
+
readonly value: "id_desc";
|
|
39
|
+
readonly label: "ID 降序";
|
|
40
|
+
}, {
|
|
41
|
+
readonly value: "realname_asc";
|
|
42
|
+
readonly label: "姓名 升序";
|
|
43
|
+
}, {
|
|
44
|
+
readonly value: "realname_desc";
|
|
45
|
+
readonly label: "姓名 降序";
|
|
46
|
+
}, {
|
|
47
|
+
readonly value: "account_asc";
|
|
48
|
+
readonly label: "用户名 升序";
|
|
49
|
+
}, {
|
|
50
|
+
readonly value: "account_desc";
|
|
51
|
+
readonly label: "用户名 降序";
|
|
52
|
+
}];
|
|
53
|
+
}, {
|
|
54
|
+
readonly name: "recPerPage";
|
|
55
|
+
readonly required: false;
|
|
56
|
+
readonly type: "number";
|
|
57
|
+
readonly description: "每页数量,不超过1000";
|
|
58
|
+
}, {
|
|
59
|
+
readonly name: "pageID";
|
|
60
|
+
readonly required: false;
|
|
61
|
+
readonly type: "number";
|
|
62
|
+
readonly description: "页码,从第1页开始";
|
|
63
|
+
}];
|
|
64
|
+
}, {
|
|
65
|
+
readonly name: "create";
|
|
66
|
+
readonly display: "创建用户";
|
|
67
|
+
readonly type: "create";
|
|
68
|
+
readonly method: "post";
|
|
69
|
+
readonly path: "/users";
|
|
70
|
+
readonly resultType: "object";
|
|
71
|
+
readonly requestBody: {
|
|
72
|
+
readonly required: true;
|
|
73
|
+
readonly type: "object";
|
|
74
|
+
readonly schema: {
|
|
75
|
+
readonly type: "object";
|
|
76
|
+
readonly properties: {
|
|
77
|
+
readonly account: {
|
|
78
|
+
readonly type: "string";
|
|
79
|
+
readonly description: "登录名";
|
|
80
|
+
};
|
|
81
|
+
readonly realname: {
|
|
82
|
+
readonly type: "string";
|
|
83
|
+
readonly description: "姓名";
|
|
84
|
+
};
|
|
85
|
+
readonly password: {
|
|
86
|
+
readonly type: "string";
|
|
87
|
+
readonly description: "密码";
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
readonly required: readonly ["account", "realname", "password"];
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
}, {
|
|
94
|
+
readonly name: "get";
|
|
95
|
+
readonly display: "获取用户详情";
|
|
96
|
+
readonly type: "get";
|
|
97
|
+
readonly method: "get";
|
|
98
|
+
readonly path: "/users/{userID}";
|
|
99
|
+
readonly resultType: "object";
|
|
100
|
+
readonly resultGetter: "user";
|
|
101
|
+
readonly pathParams: {
|
|
102
|
+
readonly userID: "用户ID";
|
|
103
|
+
};
|
|
104
|
+
}, {
|
|
105
|
+
readonly name: "update";
|
|
106
|
+
readonly display: "修改用户信息";
|
|
107
|
+
readonly type: "update";
|
|
108
|
+
readonly method: "put";
|
|
109
|
+
readonly path: "/users/{userID}";
|
|
110
|
+
readonly resultType: "object";
|
|
111
|
+
readonly pathParams: {
|
|
112
|
+
readonly userID: "用户ID";
|
|
113
|
+
};
|
|
114
|
+
readonly requestBody: {
|
|
115
|
+
readonly required: true;
|
|
116
|
+
readonly type: "object";
|
|
117
|
+
readonly schema: {
|
|
118
|
+
readonly type: "object";
|
|
119
|
+
readonly properties: {
|
|
120
|
+
readonly realname: {
|
|
121
|
+
readonly type: "string";
|
|
122
|
+
readonly description: "真实姓名";
|
|
123
|
+
};
|
|
124
|
+
readonly dept: {
|
|
125
|
+
readonly type: "integer";
|
|
126
|
+
readonly description: "部门";
|
|
127
|
+
readonly format: "int32";
|
|
128
|
+
};
|
|
129
|
+
readonly join: {
|
|
130
|
+
readonly type: "string";
|
|
131
|
+
readonly description: "入职日期";
|
|
132
|
+
};
|
|
133
|
+
readonly group: {
|
|
134
|
+
readonly type: "array";
|
|
135
|
+
readonly items: {
|
|
136
|
+
readonly type: "string";
|
|
137
|
+
};
|
|
138
|
+
readonly description: "权限分组";
|
|
139
|
+
};
|
|
140
|
+
readonly email: {
|
|
141
|
+
readonly type: "string";
|
|
142
|
+
readonly description: "邮箱";
|
|
143
|
+
};
|
|
144
|
+
readonly visions: {
|
|
145
|
+
readonly type: "array";
|
|
146
|
+
readonly items: {
|
|
147
|
+
readonly type: "string";
|
|
148
|
+
};
|
|
149
|
+
readonly description: "界面类型(研发综合界面 rnd | 运营管理界面 lite)";
|
|
150
|
+
};
|
|
151
|
+
readonly mobile: {
|
|
152
|
+
readonly type: "string";
|
|
153
|
+
readonly description: "手机";
|
|
154
|
+
};
|
|
155
|
+
readonly weixin: {
|
|
156
|
+
readonly type: "string";
|
|
157
|
+
readonly description: "微信";
|
|
158
|
+
};
|
|
159
|
+
readonly password: {
|
|
160
|
+
readonly type: "string";
|
|
161
|
+
readonly description: "密码";
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
}, {
|
|
167
|
+
readonly name: "delete";
|
|
168
|
+
readonly display: "删除用户";
|
|
169
|
+
readonly type: "delete";
|
|
170
|
+
readonly method: "delete";
|
|
171
|
+
readonly path: "/users/{userID}";
|
|
172
|
+
readonly resultType: "text";
|
|
173
|
+
readonly pathParams: {
|
|
174
|
+
readonly userID: "用户ID";
|
|
175
|
+
};
|
|
176
|
+
readonly render: "action";
|
|
177
|
+
}];
|
|
178
|
+
}, {
|
|
179
|
+
readonly name: "program";
|
|
180
|
+
readonly display: "项目集";
|
|
181
|
+
readonly description: "项目集管理,支持获取项目集列表、创建项目集、获取项目集详情、修改项目集、删除项目集";
|
|
182
|
+
readonly actions: readonly [{
|
|
183
|
+
readonly name: "list";
|
|
184
|
+
readonly display: "获取项目集列表";
|
|
185
|
+
readonly type: "list";
|
|
186
|
+
readonly method: "get";
|
|
187
|
+
readonly path: "/programs";
|
|
188
|
+
readonly resultType: "list";
|
|
189
|
+
readonly pagerGetter: "pager";
|
|
190
|
+
readonly resultGetter: "programs";
|
|
191
|
+
readonly params: readonly [{
|
|
192
|
+
readonly name: "status";
|
|
193
|
+
readonly required: false;
|
|
194
|
+
readonly type: "string";
|
|
195
|
+
readonly description: "状态";
|
|
196
|
+
readonly options: readonly [{
|
|
197
|
+
readonly value: "all";
|
|
198
|
+
readonly label: "全部";
|
|
199
|
+
}, {
|
|
200
|
+
readonly value: "unclosed";
|
|
201
|
+
readonly label: "未关闭";
|
|
202
|
+
}, {
|
|
203
|
+
readonly value: "wait";
|
|
204
|
+
readonly label: "未开始";
|
|
205
|
+
}, {
|
|
206
|
+
readonly value: "doing";
|
|
207
|
+
readonly label: "进行中";
|
|
208
|
+
}, {
|
|
209
|
+
readonly value: "suspended";
|
|
210
|
+
readonly label: "已挂起";
|
|
211
|
+
}, {
|
|
212
|
+
readonly value: "delayed";
|
|
213
|
+
readonly label: "已延期";
|
|
214
|
+
}, {
|
|
215
|
+
readonly value: "closed";
|
|
216
|
+
readonly label: "已关闭";
|
|
217
|
+
}];
|
|
218
|
+
}, {
|
|
219
|
+
readonly name: "orderBy";
|
|
220
|
+
readonly required: false;
|
|
221
|
+
readonly type: "string";
|
|
222
|
+
readonly description: "排序";
|
|
223
|
+
readonly options: readonly [{
|
|
224
|
+
readonly value: "id_asc";
|
|
225
|
+
readonly label: "ID 升序";
|
|
226
|
+
}, {
|
|
227
|
+
readonly value: "id_desc";
|
|
228
|
+
readonly label: "ID 降序";
|
|
229
|
+
}, {
|
|
230
|
+
readonly value: "name_asc";
|
|
231
|
+
readonly label: "名称 升序";
|
|
232
|
+
}, {
|
|
233
|
+
readonly value: "name_desc";
|
|
234
|
+
readonly label: "名称 降序";
|
|
235
|
+
}, {
|
|
236
|
+
readonly value: "begin_asc";
|
|
237
|
+
readonly label: "计划开始 升序";
|
|
238
|
+
}, {
|
|
239
|
+
readonly value: "begin_desc";
|
|
240
|
+
readonly label: "计划开始 降序";
|
|
241
|
+
}, {
|
|
242
|
+
readonly value: "end_asc";
|
|
243
|
+
readonly label: "计划结束 升序";
|
|
244
|
+
}, {
|
|
245
|
+
readonly value: "end_desc";
|
|
246
|
+
readonly label: "计划结束 降序";
|
|
247
|
+
}];
|
|
248
|
+
}, {
|
|
249
|
+
readonly name: "recPerPage";
|
|
250
|
+
readonly required: false;
|
|
251
|
+
readonly type: "number";
|
|
252
|
+
readonly description: "每页数量,不超过1000";
|
|
253
|
+
}, {
|
|
254
|
+
readonly name: "pageID";
|
|
255
|
+
readonly required: false;
|
|
256
|
+
readonly type: "number";
|
|
257
|
+
readonly description: "页码,从第1页开始";
|
|
258
|
+
}];
|
|
259
|
+
}, {
|
|
260
|
+
readonly name: "create";
|
|
261
|
+
readonly display: "创建项目集";
|
|
262
|
+
readonly type: "create";
|
|
263
|
+
readonly method: "post";
|
|
264
|
+
readonly path: "/programs";
|
|
265
|
+
readonly resultType: "object";
|
|
266
|
+
readonly requestBody: {
|
|
267
|
+
readonly required: true;
|
|
268
|
+
readonly type: "object";
|
|
269
|
+
readonly schema: {
|
|
270
|
+
readonly type: "object";
|
|
271
|
+
readonly properties: {
|
|
272
|
+
readonly name: {
|
|
273
|
+
readonly type: "string";
|
|
274
|
+
readonly description: "项目集名称";
|
|
275
|
+
};
|
|
276
|
+
readonly begin: {
|
|
277
|
+
readonly type: "string";
|
|
278
|
+
readonly description: "计划开始日期";
|
|
279
|
+
};
|
|
280
|
+
readonly end: {
|
|
281
|
+
readonly type: "string";
|
|
282
|
+
readonly description: "计划完成日期";
|
|
283
|
+
};
|
|
284
|
+
readonly PM: {
|
|
285
|
+
readonly type: "string";
|
|
286
|
+
readonly description: "计划完成日期";
|
|
287
|
+
};
|
|
288
|
+
readonly desc: {
|
|
289
|
+
readonly type: "string";
|
|
290
|
+
readonly description: "项目集描述";
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
readonly required: readonly ["name", "begin", "end"];
|
|
294
|
+
};
|
|
295
|
+
};
|
|
296
|
+
}, {
|
|
297
|
+
readonly name: "get";
|
|
298
|
+
readonly display: "获取项目集详情";
|
|
299
|
+
readonly type: "get";
|
|
300
|
+
readonly method: "get";
|
|
301
|
+
readonly path: "/programs/{programID}";
|
|
302
|
+
readonly resultType: "object";
|
|
303
|
+
readonly resultGetter: "program";
|
|
304
|
+
readonly pathParams: {
|
|
305
|
+
readonly programID: "项目集ID";
|
|
306
|
+
};
|
|
307
|
+
}, {
|
|
308
|
+
readonly name: "update";
|
|
309
|
+
readonly display: "修改项目集";
|
|
310
|
+
readonly type: "update";
|
|
311
|
+
readonly method: "put";
|
|
312
|
+
readonly path: "/programs/{programID}";
|
|
313
|
+
readonly resultType: "object";
|
|
314
|
+
readonly pathParams: {
|
|
315
|
+
readonly programID: "项目集ID";
|
|
316
|
+
};
|
|
317
|
+
readonly requestBody: {
|
|
318
|
+
readonly required: true;
|
|
319
|
+
readonly type: "object";
|
|
320
|
+
readonly schema: {
|
|
321
|
+
readonly type: "object";
|
|
322
|
+
readonly properties: {
|
|
323
|
+
readonly name: {
|
|
324
|
+
readonly type: "string";
|
|
325
|
+
readonly description: "项目集名称";
|
|
326
|
+
};
|
|
327
|
+
readonly begin: {
|
|
328
|
+
readonly type: "string";
|
|
329
|
+
readonly description: "计划开始日期";
|
|
330
|
+
};
|
|
331
|
+
readonly end: {
|
|
332
|
+
readonly type: "string";
|
|
333
|
+
readonly description: "计划完成日期";
|
|
334
|
+
};
|
|
335
|
+
readonly PM: {
|
|
336
|
+
readonly type: "string";
|
|
337
|
+
readonly description: "计划完成日期";
|
|
338
|
+
};
|
|
339
|
+
readonly desc: {
|
|
340
|
+
readonly type: "string";
|
|
341
|
+
readonly description: "项目集描述";
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
readonly required: readonly ["name", "begin", "end"];
|
|
345
|
+
};
|
|
346
|
+
};
|
|
347
|
+
}, {
|
|
348
|
+
readonly name: "delete";
|
|
349
|
+
readonly display: "删除项目集";
|
|
350
|
+
readonly type: "delete";
|
|
351
|
+
readonly method: "delete";
|
|
352
|
+
readonly path: "/programs/{programID}";
|
|
353
|
+
readonly resultType: "text";
|
|
354
|
+
readonly pathParams: {
|
|
355
|
+
readonly programID: "项目集ID";
|
|
356
|
+
};
|
|
357
|
+
readonly render: "action";
|
|
358
|
+
}];
|
|
359
|
+
}, {
|
|
360
|
+
readonly name: "product";
|
|
361
|
+
readonly display: "产品";
|
|
362
|
+
readonly description: "产品管理,支持获取产品列表、创建产品、获取产品详情、修改产品、删除产品";
|
|
363
|
+
readonly actions: readonly [{
|
|
364
|
+
readonly name: "list";
|
|
365
|
+
readonly display: "获取产品列表";
|
|
366
|
+
readonly type: "list";
|
|
367
|
+
readonly method: "get";
|
|
368
|
+
readonly path: "/products";
|
|
369
|
+
readonly resultType: "list";
|
|
370
|
+
readonly pagerGetter: "pager";
|
|
371
|
+
readonly resultGetter: "products";
|
|
372
|
+
readonly params: readonly [{
|
|
373
|
+
readonly name: "browseType";
|
|
374
|
+
readonly required: false;
|
|
375
|
+
readonly type: "string";
|
|
376
|
+
readonly description: "浏览类型";
|
|
377
|
+
readonly options: readonly [{
|
|
378
|
+
readonly value: "all";
|
|
379
|
+
readonly label: "全部";
|
|
380
|
+
}, {
|
|
381
|
+
readonly value: "noclosed";
|
|
382
|
+
readonly label: "未关闭";
|
|
383
|
+
}, {
|
|
384
|
+
readonly value: "closed";
|
|
385
|
+
readonly label: "已结束";
|
|
386
|
+
}];
|
|
387
|
+
}, {
|
|
388
|
+
readonly name: "orderBy";
|
|
389
|
+
readonly required: false;
|
|
390
|
+
readonly type: "string";
|
|
391
|
+
readonly description: "排序";
|
|
392
|
+
readonly options: readonly [{
|
|
393
|
+
readonly value: "id_asc";
|
|
394
|
+
readonly label: "ID 升序";
|
|
395
|
+
}, {
|
|
396
|
+
readonly value: "id_desc";
|
|
397
|
+
readonly label: "ID 降序";
|
|
398
|
+
}, {
|
|
399
|
+
readonly value: "title_asc";
|
|
400
|
+
readonly label: "名称 升序";
|
|
401
|
+
}, {
|
|
402
|
+
readonly value: "title_desc";
|
|
403
|
+
readonly label: "名称 降序";
|
|
404
|
+
}, {
|
|
405
|
+
readonly value: "begin_asc";
|
|
406
|
+
readonly label: "计划开始 升序";
|
|
407
|
+
}, {
|
|
408
|
+
readonly value: "begin_desc";
|
|
409
|
+
readonly label: "计划开始 降序";
|
|
410
|
+
}, {
|
|
411
|
+
readonly value: "end_asc";
|
|
412
|
+
readonly label: "计划结束 升序";
|
|
413
|
+
}, {
|
|
414
|
+
readonly value: "end_desc";
|
|
415
|
+
readonly label: "计划结束 降序";
|
|
416
|
+
}];
|
|
417
|
+
}, {
|
|
418
|
+
readonly name: "recPerPage";
|
|
419
|
+
readonly required: false;
|
|
420
|
+
readonly type: "number";
|
|
421
|
+
readonly description: "每页数量,不超过1000";
|
|
422
|
+
}, {
|
|
423
|
+
readonly name: "pageID";
|
|
424
|
+
readonly required: false;
|
|
425
|
+
readonly type: "number";
|
|
426
|
+
readonly description: "页码,从第1页开始";
|
|
427
|
+
}];
|
|
428
|
+
}, {
|
|
429
|
+
readonly name: "create";
|
|
430
|
+
readonly display: "创建产品";
|
|
431
|
+
readonly type: "create";
|
|
432
|
+
readonly method: "post";
|
|
433
|
+
readonly path: "/products";
|
|
434
|
+
readonly resultType: "object";
|
|
435
|
+
readonly requestBody: {
|
|
436
|
+
readonly required: true;
|
|
437
|
+
readonly type: "object";
|
|
438
|
+
readonly schema: {
|
|
439
|
+
readonly type: "object";
|
|
440
|
+
readonly properties: {
|
|
441
|
+
readonly name: {
|
|
442
|
+
readonly type: "string";
|
|
443
|
+
readonly description: "产品名称";
|
|
444
|
+
};
|
|
445
|
+
readonly program: {
|
|
446
|
+
readonly type: "integer";
|
|
447
|
+
readonly description: "所属项目集";
|
|
448
|
+
readonly format: "int32";
|
|
449
|
+
};
|
|
450
|
+
readonly line: {
|
|
451
|
+
readonly type: "integer";
|
|
452
|
+
readonly description: "所属产品线";
|
|
453
|
+
readonly format: "int32";
|
|
454
|
+
};
|
|
455
|
+
readonly type: {
|
|
456
|
+
readonly type: "string";
|
|
457
|
+
readonly description: "类型(normal 正常 | branch 多分支 | platform 多平台)";
|
|
458
|
+
};
|
|
459
|
+
readonly PO: {
|
|
460
|
+
readonly type: "string";
|
|
461
|
+
readonly description: "产品负责人";
|
|
462
|
+
};
|
|
463
|
+
readonly reviewer: {
|
|
464
|
+
readonly type: "array";
|
|
465
|
+
readonly items: {
|
|
466
|
+
readonly type: "string";
|
|
467
|
+
};
|
|
468
|
+
readonly description: "评审人";
|
|
469
|
+
};
|
|
470
|
+
readonly desc: {
|
|
471
|
+
readonly type: "array";
|
|
472
|
+
readonly items: {
|
|
473
|
+
readonly type: "string";
|
|
474
|
+
};
|
|
475
|
+
readonly description: "产品描述";
|
|
476
|
+
};
|
|
477
|
+
readonly QD: {
|
|
478
|
+
readonly type: "string";
|
|
479
|
+
readonly description: "测试负责人";
|
|
480
|
+
};
|
|
481
|
+
readonly RD: {
|
|
482
|
+
readonly type: "string";
|
|
483
|
+
readonly description: "发布负责人";
|
|
484
|
+
};
|
|
485
|
+
readonly acl: {
|
|
486
|
+
readonly type: "string";
|
|
487
|
+
readonly description: "访问控制(open 公开 | private 私有)";
|
|
488
|
+
};
|
|
489
|
+
};
|
|
490
|
+
readonly required: readonly ["name"];
|
|
491
|
+
};
|
|
492
|
+
};
|
|
493
|
+
}, {
|
|
494
|
+
readonly name: "get";
|
|
495
|
+
readonly display: "获取产品详情";
|
|
496
|
+
readonly type: "get";
|
|
497
|
+
readonly method: "get";
|
|
498
|
+
readonly path: "/products/{productID}";
|
|
499
|
+
readonly resultType: "object";
|
|
500
|
+
readonly resultGetter: "product";
|
|
501
|
+
readonly pathParams: {
|
|
502
|
+
readonly productID: "产品ID";
|
|
503
|
+
};
|
|
504
|
+
}, {
|
|
505
|
+
readonly name: "update";
|
|
506
|
+
readonly display: "修改产品";
|
|
507
|
+
readonly type: "update";
|
|
508
|
+
readonly method: "put";
|
|
509
|
+
readonly path: "/products/{productID}";
|
|
510
|
+
readonly resultType: "object";
|
|
511
|
+
readonly pathParams: {
|
|
512
|
+
readonly productID: "产品ID";
|
|
513
|
+
};
|
|
514
|
+
readonly requestBody: {
|
|
515
|
+
readonly required: true;
|
|
516
|
+
readonly type: "object";
|
|
517
|
+
readonly schema: {
|
|
518
|
+
readonly type: "object";
|
|
519
|
+
readonly properties: {
|
|
520
|
+
readonly name: {
|
|
521
|
+
readonly type: "string";
|
|
522
|
+
readonly description: "产品名称";
|
|
523
|
+
};
|
|
524
|
+
readonly program: {
|
|
525
|
+
readonly type: "integer";
|
|
526
|
+
readonly description: "所属项目集";
|
|
527
|
+
readonly format: "int32";
|
|
528
|
+
};
|
|
529
|
+
readonly line: {
|
|
530
|
+
readonly type: "integer";
|
|
531
|
+
readonly description: "所属产品线";
|
|
532
|
+
readonly format: "int32";
|
|
533
|
+
};
|
|
534
|
+
readonly type: {
|
|
535
|
+
readonly type: "string";
|
|
536
|
+
readonly description: "类型(normal 正常 | branch 多分支 | platform 多平台)";
|
|
537
|
+
};
|
|
538
|
+
readonly PO: {
|
|
539
|
+
readonly type: "string";
|
|
540
|
+
readonly description: "产品负责人";
|
|
541
|
+
};
|
|
542
|
+
readonly reviewer: {
|
|
543
|
+
readonly type: "array";
|
|
544
|
+
readonly items: {
|
|
545
|
+
readonly type: "string";
|
|
546
|
+
};
|
|
547
|
+
readonly description: "评审人";
|
|
548
|
+
};
|
|
549
|
+
readonly desc: {
|
|
550
|
+
readonly type: "array";
|
|
551
|
+
readonly items: {
|
|
552
|
+
readonly type: "string";
|
|
553
|
+
};
|
|
554
|
+
readonly description: "产品描述";
|
|
555
|
+
};
|
|
556
|
+
readonly QD: {
|
|
557
|
+
readonly type: "string";
|
|
558
|
+
readonly description: "测试负责人";
|
|
559
|
+
};
|
|
560
|
+
readonly RD: {
|
|
561
|
+
readonly type: "string";
|
|
562
|
+
readonly description: "发布负责人";
|
|
563
|
+
};
|
|
564
|
+
readonly acl: {
|
|
565
|
+
readonly type: "string";
|
|
566
|
+
readonly description: "访问控制(open 公开 | private 私有)";
|
|
567
|
+
};
|
|
568
|
+
};
|
|
569
|
+
readonly required: readonly ["name"];
|
|
570
|
+
};
|
|
571
|
+
};
|
|
572
|
+
}, {
|
|
573
|
+
readonly name: "delete";
|
|
574
|
+
readonly display: "删除产品";
|
|
575
|
+
readonly type: "delete";
|
|
576
|
+
readonly method: "delete";
|
|
577
|
+
readonly path: "/products/{productID}";
|
|
578
|
+
readonly resultType: "text";
|
|
579
|
+
readonly pathParams: {
|
|
580
|
+
readonly productID: "产品ID";
|
|
581
|
+
};
|
|
582
|
+
readonly render: "action";
|
|
583
|
+
}];
|
|
584
|
+
}, {
|
|
585
|
+
readonly name: "project";
|
|
586
|
+
readonly display: "项目";
|
|
587
|
+
readonly description: "项目管理,支持获取项目列表、创建项目、修改项目、删除项目";
|
|
588
|
+
readonly actions: readonly [{
|
|
589
|
+
readonly name: "list";
|
|
590
|
+
readonly display: "获取项目列表";
|
|
591
|
+
readonly type: "list";
|
|
592
|
+
readonly method: "get";
|
|
593
|
+
readonly path: "/projects";
|
|
594
|
+
readonly resultType: "list";
|
|
595
|
+
readonly pagerGetter: "pager";
|
|
596
|
+
readonly resultGetter: "projects";
|
|
597
|
+
readonly params: readonly [{
|
|
598
|
+
readonly name: "browseType";
|
|
599
|
+
readonly required: false;
|
|
600
|
+
readonly type: "string";
|
|
601
|
+
readonly description: "项目状态,默认是undone";
|
|
602
|
+
readonly defaultValue: "undone";
|
|
603
|
+
readonly options: readonly [{
|
|
604
|
+
readonly value: "all";
|
|
605
|
+
readonly label: "全部";
|
|
606
|
+
}, {
|
|
607
|
+
readonly value: "undone";
|
|
608
|
+
readonly label: "未完成";
|
|
609
|
+
}, {
|
|
610
|
+
readonly value: "wait";
|
|
611
|
+
readonly label: "未开始";
|
|
612
|
+
}, {
|
|
613
|
+
readonly value: "doing";
|
|
614
|
+
readonly label: "进行中";
|
|
615
|
+
}];
|
|
616
|
+
}, {
|
|
617
|
+
readonly name: "orderBy";
|
|
618
|
+
readonly required: false;
|
|
619
|
+
readonly type: "string";
|
|
620
|
+
readonly description: "排序";
|
|
621
|
+
readonly options: readonly [{
|
|
622
|
+
readonly value: "id_asc";
|
|
623
|
+
readonly label: "ID 升序";
|
|
624
|
+
}, {
|
|
625
|
+
readonly value: "id_desc";
|
|
626
|
+
readonly label: "ID 降序";
|
|
627
|
+
}, {
|
|
628
|
+
readonly value: "name_asc";
|
|
629
|
+
readonly label: "名称 升序";
|
|
630
|
+
}, {
|
|
631
|
+
readonly value: "name_desc";
|
|
632
|
+
readonly label: "名称 降序";
|
|
633
|
+
}, {
|
|
634
|
+
readonly value: "begin_asc";
|
|
635
|
+
readonly label: "计划开始 升序";
|
|
636
|
+
}, {
|
|
637
|
+
readonly value: "begin_desc";
|
|
638
|
+
readonly label: "计划开始 降序";
|
|
639
|
+
}, {
|
|
640
|
+
readonly value: "end_asc";
|
|
641
|
+
readonly label: "计划结束 升序";
|
|
642
|
+
}, {
|
|
643
|
+
readonly value: "end_desc";
|
|
644
|
+
readonly label: "计划结束 降序";
|
|
645
|
+
}];
|
|
646
|
+
}, {
|
|
647
|
+
readonly name: "recPerPage";
|
|
648
|
+
readonly required: false;
|
|
649
|
+
readonly type: "number";
|
|
650
|
+
readonly description: "每页数量,不超过1000";
|
|
651
|
+
}, {
|
|
652
|
+
readonly name: "pageID";
|
|
653
|
+
readonly required: false;
|
|
654
|
+
readonly type: "number";
|
|
655
|
+
readonly description: "页码,从第1页开始";
|
|
656
|
+
}];
|
|
657
|
+
}, {
|
|
658
|
+
readonly name: "create";
|
|
659
|
+
readonly display: "创建项目";
|
|
660
|
+
readonly type: "create";
|
|
661
|
+
readonly method: "post";
|
|
662
|
+
readonly path: "/projects";
|
|
663
|
+
readonly resultType: "object";
|
|
664
|
+
readonly requestBody: {
|
|
665
|
+
readonly required: true;
|
|
666
|
+
readonly type: "object";
|
|
667
|
+
readonly schema: {
|
|
668
|
+
readonly type: "object";
|
|
669
|
+
readonly properties: {
|
|
670
|
+
readonly name: {
|
|
671
|
+
readonly type: "string";
|
|
672
|
+
readonly description: "项目名称";
|
|
673
|
+
};
|
|
674
|
+
readonly model: {
|
|
675
|
+
readonly type: "string";
|
|
676
|
+
readonly description: "项目管理方式(scrum 敏捷 | waterfall 瀑布 | kanban 看板 | agileplus 融合敏捷 | waterfallplus 融合瀑布)";
|
|
677
|
+
};
|
|
678
|
+
readonly begin: {
|
|
679
|
+
readonly type: "string";
|
|
680
|
+
readonly description: "开始日期";
|
|
681
|
+
};
|
|
682
|
+
readonly end: {
|
|
683
|
+
readonly type: "string";
|
|
684
|
+
readonly description: "结束日期";
|
|
685
|
+
};
|
|
686
|
+
readonly products: {
|
|
687
|
+
readonly type: "array";
|
|
688
|
+
readonly items: {
|
|
689
|
+
readonly type: "string";
|
|
690
|
+
};
|
|
691
|
+
readonly description: "关联产品";
|
|
692
|
+
};
|
|
693
|
+
readonly parent: {
|
|
694
|
+
readonly type: "integer";
|
|
695
|
+
readonly description: "所属项目集";
|
|
696
|
+
readonly format: "int32";
|
|
697
|
+
};
|
|
698
|
+
readonly workflowGroup: {
|
|
699
|
+
readonly type: "integer";
|
|
700
|
+
readonly description: "项目流程,付费版功能,开源版可以不填";
|
|
701
|
+
readonly format: "int32";
|
|
702
|
+
};
|
|
703
|
+
readonly PM: {
|
|
704
|
+
readonly type: "string";
|
|
705
|
+
readonly description: "项目负责人";
|
|
706
|
+
};
|
|
707
|
+
};
|
|
708
|
+
readonly required: readonly ["name", "model", "begin", "end", "workflowGroup"];
|
|
709
|
+
};
|
|
710
|
+
};
|
|
711
|
+
}, {
|
|
712
|
+
readonly name: "update";
|
|
713
|
+
readonly display: "修改项目";
|
|
714
|
+
readonly type: "update";
|
|
715
|
+
readonly method: "put";
|
|
716
|
+
readonly path: "/projects/{projectID}";
|
|
717
|
+
readonly resultType: "object";
|
|
718
|
+
readonly pathParams: {
|
|
719
|
+
readonly projectID: "项目ID";
|
|
720
|
+
};
|
|
721
|
+
readonly requestBody: {
|
|
722
|
+
readonly required: true;
|
|
723
|
+
readonly type: "object";
|
|
724
|
+
readonly schema: {
|
|
725
|
+
readonly type: "object";
|
|
726
|
+
readonly properties: {
|
|
727
|
+
readonly name: {
|
|
728
|
+
readonly type: "string";
|
|
729
|
+
readonly description: "项目名称";
|
|
730
|
+
};
|
|
731
|
+
readonly model: {
|
|
732
|
+
readonly type: "string";
|
|
733
|
+
readonly description: "项目管理方式(scrum 敏捷 | waterfall 瀑布 | kanban 看板 | agileplus 融合敏捷 | waterfallplus 融合瀑布)";
|
|
734
|
+
};
|
|
735
|
+
readonly begin: {
|
|
736
|
+
readonly type: "string";
|
|
737
|
+
readonly description: "开始日期";
|
|
738
|
+
};
|
|
739
|
+
readonly end: {
|
|
740
|
+
readonly type: "string";
|
|
741
|
+
readonly description: "结束日期";
|
|
742
|
+
};
|
|
743
|
+
readonly products: {
|
|
744
|
+
readonly type: "array";
|
|
745
|
+
readonly items: {
|
|
746
|
+
readonly type: "string";
|
|
747
|
+
};
|
|
748
|
+
readonly description: "关联产品";
|
|
749
|
+
};
|
|
750
|
+
readonly parent: {
|
|
751
|
+
readonly type: "integer";
|
|
752
|
+
readonly description: "所属项目集";
|
|
753
|
+
readonly format: "int32";
|
|
754
|
+
};
|
|
755
|
+
readonly workflowGroup: {
|
|
756
|
+
readonly type: "integer";
|
|
757
|
+
readonly description: "项目流程,付费版功能,开源版可以不填";
|
|
758
|
+
readonly format: "int32";
|
|
759
|
+
};
|
|
760
|
+
readonly PM: {
|
|
761
|
+
readonly type: "string";
|
|
762
|
+
readonly description: "项目负责人";
|
|
763
|
+
};
|
|
764
|
+
};
|
|
765
|
+
readonly required: readonly ["name", "model", "begin", "end", "workflowGroup"];
|
|
766
|
+
};
|
|
767
|
+
};
|
|
768
|
+
}, {
|
|
769
|
+
readonly name: "delete";
|
|
770
|
+
readonly display: "删除项目";
|
|
771
|
+
readonly type: "delete";
|
|
772
|
+
readonly method: "delete";
|
|
773
|
+
readonly path: "/projects/{projectID}";
|
|
774
|
+
readonly resultType: "text";
|
|
775
|
+
readonly pathParams: {
|
|
776
|
+
readonly projectID: "项目ID";
|
|
777
|
+
};
|
|
778
|
+
readonly render: "action";
|
|
779
|
+
}];
|
|
780
|
+
}, {
|
|
781
|
+
readonly name: "execution";
|
|
782
|
+
readonly display: "执行";
|
|
783
|
+
readonly description: "执行管理,支持获取执行列表、创建执行、获取执行详情、修改执行、删除执行";
|
|
784
|
+
readonly actions: readonly [{
|
|
785
|
+
readonly name: "list";
|
|
786
|
+
readonly display: "获取执行列表";
|
|
787
|
+
readonly type: "list";
|
|
788
|
+
readonly method: "get";
|
|
789
|
+
readonly path: "/executions";
|
|
790
|
+
readonly resultType: "list";
|
|
791
|
+
readonly pagerGetter: "pager";
|
|
792
|
+
readonly resultGetter: "executions";
|
|
793
|
+
readonly params: readonly [{
|
|
794
|
+
readonly name: "status";
|
|
795
|
+
readonly required: false;
|
|
796
|
+
readonly type: "string";
|
|
797
|
+
readonly description: "执行状态,默认是undone";
|
|
798
|
+
readonly defaultValue: "undone";
|
|
799
|
+
readonly options: readonly [{
|
|
800
|
+
readonly value: "all";
|
|
801
|
+
readonly label: "全部";
|
|
802
|
+
}, {
|
|
803
|
+
readonly value: "undone";
|
|
804
|
+
readonly label: "未完成";
|
|
805
|
+
}, {
|
|
806
|
+
readonly value: "wait";
|
|
807
|
+
readonly label: "未开始";
|
|
808
|
+
}, {
|
|
809
|
+
readonly value: "doing";
|
|
810
|
+
readonly label: "进行中";
|
|
811
|
+
}];
|
|
812
|
+
}, {
|
|
813
|
+
readonly name: "orderBy";
|
|
814
|
+
readonly required: false;
|
|
815
|
+
readonly type: "string";
|
|
816
|
+
readonly description: "排序";
|
|
817
|
+
readonly options: readonly [{
|
|
818
|
+
readonly value: "rawID_asc";
|
|
819
|
+
readonly label: "RAWID 升序";
|
|
820
|
+
}, {
|
|
821
|
+
readonly value: "rawID_desc";
|
|
822
|
+
readonly label: "RAWID 降序";
|
|
823
|
+
}, {
|
|
824
|
+
readonly value: "nameCol_asc";
|
|
825
|
+
readonly label: "名称 升序";
|
|
826
|
+
}, {
|
|
827
|
+
readonly value: "nameCol_desc";
|
|
828
|
+
readonly label: "名称 降序";
|
|
829
|
+
}, {
|
|
830
|
+
readonly value: "begin_asc";
|
|
831
|
+
readonly label: "计划开始 升序";
|
|
832
|
+
}, {
|
|
833
|
+
readonly value: "begin_desc";
|
|
834
|
+
readonly label: "计划开始 降序";
|
|
835
|
+
}, {
|
|
836
|
+
readonly value: "end_asc";
|
|
837
|
+
readonly label: "计划结束 升序";
|
|
838
|
+
}, {
|
|
839
|
+
readonly value: "end_desc";
|
|
840
|
+
readonly label: "计划结束 降序";
|
|
841
|
+
}];
|
|
842
|
+
}, {
|
|
843
|
+
readonly name: "recPerPage";
|
|
844
|
+
readonly required: false;
|
|
845
|
+
readonly type: "number";
|
|
846
|
+
readonly description: "每页数量,不超过1000";
|
|
847
|
+
}, {
|
|
848
|
+
readonly name: "pageID";
|
|
849
|
+
readonly required: false;
|
|
850
|
+
readonly type: "number";
|
|
851
|
+
readonly description: "页码,从第1页开始";
|
|
852
|
+
}];
|
|
853
|
+
}, {
|
|
854
|
+
readonly name: "create";
|
|
855
|
+
readonly display: "创建执行";
|
|
856
|
+
readonly type: "create";
|
|
857
|
+
readonly method: "post";
|
|
858
|
+
readonly path: "/executions";
|
|
859
|
+
readonly resultType: "object";
|
|
860
|
+
readonly requestBody: {
|
|
861
|
+
readonly required: true;
|
|
862
|
+
readonly type: "object";
|
|
863
|
+
readonly schema: {
|
|
864
|
+
readonly type: "object";
|
|
865
|
+
readonly properties: {
|
|
866
|
+
readonly project: {
|
|
867
|
+
readonly type: "integer";
|
|
868
|
+
readonly description: "所属项目";
|
|
869
|
+
readonly format: "int32";
|
|
870
|
+
};
|
|
871
|
+
readonly name: {
|
|
872
|
+
readonly type: "string";
|
|
873
|
+
readonly description: "迭代名称";
|
|
874
|
+
};
|
|
875
|
+
readonly lifetime: {
|
|
876
|
+
readonly type: "string";
|
|
877
|
+
readonly description: "执行类型(short 短期 | long 长期 | ops 运维)";
|
|
878
|
+
};
|
|
879
|
+
readonly begin: {
|
|
880
|
+
readonly type: "string";
|
|
881
|
+
readonly description: "开始日期";
|
|
882
|
+
};
|
|
883
|
+
readonly end: {
|
|
884
|
+
readonly type: "string";
|
|
885
|
+
readonly description: "结束日期";
|
|
886
|
+
};
|
|
887
|
+
readonly days: {
|
|
888
|
+
readonly type: "integer";
|
|
889
|
+
readonly description: "可用工作日";
|
|
890
|
+
readonly format: "int32";
|
|
891
|
+
};
|
|
892
|
+
readonly products: {
|
|
893
|
+
readonly type: "array";
|
|
894
|
+
readonly items: {
|
|
895
|
+
readonly type: "string";
|
|
896
|
+
};
|
|
897
|
+
readonly description: "关联产品";
|
|
898
|
+
};
|
|
899
|
+
readonly plans: {
|
|
900
|
+
readonly type: "array";
|
|
901
|
+
readonly items: {
|
|
902
|
+
readonly type: "string";
|
|
903
|
+
};
|
|
904
|
+
readonly description: "关联计划,必须是产品+planID的二维数组";
|
|
905
|
+
};
|
|
906
|
+
readonly PO: {
|
|
907
|
+
readonly type: "string";
|
|
908
|
+
readonly description: "产品负责人";
|
|
909
|
+
};
|
|
910
|
+
readonly QD: {
|
|
911
|
+
readonly type: "string";
|
|
912
|
+
readonly description: "测试负责人";
|
|
913
|
+
};
|
|
914
|
+
readonly PM: {
|
|
915
|
+
readonly type: "string";
|
|
916
|
+
readonly description: "执行负责人";
|
|
917
|
+
};
|
|
918
|
+
readonly RD: {
|
|
919
|
+
readonly type: "string";
|
|
920
|
+
readonly description: "发布负责人";
|
|
921
|
+
};
|
|
922
|
+
readonly acl: {
|
|
923
|
+
readonly type: "string";
|
|
924
|
+
readonly description: "访问控制(open 公开 | private 私有)";
|
|
925
|
+
};
|
|
926
|
+
};
|
|
927
|
+
readonly required: readonly ["project", "name", "begin", "end"];
|
|
928
|
+
};
|
|
929
|
+
};
|
|
930
|
+
}, {
|
|
931
|
+
readonly name: "get";
|
|
932
|
+
readonly display: "获取执行详情";
|
|
933
|
+
readonly type: "get";
|
|
934
|
+
readonly method: "get";
|
|
935
|
+
readonly path: "/executions/{executionID}";
|
|
936
|
+
readonly resultType: "object";
|
|
937
|
+
readonly resultGetter: "execution";
|
|
938
|
+
readonly pathParams: {
|
|
939
|
+
readonly executionID: "执行ID";
|
|
940
|
+
};
|
|
941
|
+
}, {
|
|
942
|
+
readonly name: "update";
|
|
943
|
+
readonly display: "修改执行";
|
|
944
|
+
readonly type: "update";
|
|
945
|
+
readonly method: "put";
|
|
946
|
+
readonly path: "/executions/{executionID}";
|
|
947
|
+
readonly resultType: "object";
|
|
948
|
+
readonly pathParams: {
|
|
949
|
+
readonly executionID: "执行ID";
|
|
950
|
+
};
|
|
951
|
+
readonly requestBody: {
|
|
952
|
+
readonly required: true;
|
|
953
|
+
readonly type: "object";
|
|
954
|
+
readonly schema: {
|
|
955
|
+
readonly type: "object";
|
|
956
|
+
readonly properties: {
|
|
957
|
+
readonly project: {
|
|
958
|
+
readonly type: "integer";
|
|
959
|
+
readonly description: "所属项目";
|
|
960
|
+
readonly format: "int32";
|
|
961
|
+
};
|
|
962
|
+
readonly name: {
|
|
963
|
+
readonly type: "string";
|
|
964
|
+
readonly description: "迭代名称";
|
|
965
|
+
};
|
|
966
|
+
readonly lifetime: {
|
|
967
|
+
readonly type: "string";
|
|
968
|
+
readonly description: "执行类型(short 短期 | long 长期 | ops 运维)";
|
|
969
|
+
};
|
|
970
|
+
readonly begin: {
|
|
971
|
+
readonly type: "string";
|
|
972
|
+
readonly description: "开始日期";
|
|
973
|
+
};
|
|
974
|
+
readonly end: {
|
|
975
|
+
readonly type: "string";
|
|
976
|
+
readonly description: "结束日期";
|
|
977
|
+
};
|
|
978
|
+
readonly days: {
|
|
979
|
+
readonly type: "integer";
|
|
980
|
+
readonly description: "可用工作日";
|
|
981
|
+
readonly format: "int32";
|
|
982
|
+
};
|
|
983
|
+
readonly products: {
|
|
984
|
+
readonly type: "array";
|
|
985
|
+
readonly items: {
|
|
986
|
+
readonly type: "string";
|
|
987
|
+
};
|
|
988
|
+
readonly description: "关联产品";
|
|
989
|
+
};
|
|
990
|
+
readonly plans: {
|
|
991
|
+
readonly type: "array";
|
|
992
|
+
readonly items: {
|
|
993
|
+
readonly type: "string";
|
|
994
|
+
};
|
|
995
|
+
readonly description: "关联计划,必须是产品+planID的二维数组";
|
|
996
|
+
};
|
|
997
|
+
readonly PO: {
|
|
998
|
+
readonly type: "string";
|
|
999
|
+
readonly description: "产品负责人";
|
|
1000
|
+
};
|
|
1001
|
+
readonly QD: {
|
|
1002
|
+
readonly type: "string";
|
|
1003
|
+
readonly description: "测试负责人";
|
|
1004
|
+
};
|
|
1005
|
+
readonly PM: {
|
|
1006
|
+
readonly type: "string";
|
|
1007
|
+
readonly description: "执行负责人";
|
|
1008
|
+
};
|
|
1009
|
+
readonly RD: {
|
|
1010
|
+
readonly type: "string";
|
|
1011
|
+
readonly description: "发布负责人";
|
|
1012
|
+
};
|
|
1013
|
+
readonly acl: {
|
|
1014
|
+
readonly type: "string";
|
|
1015
|
+
readonly description: "访问控制(open 公开 | private 私有)";
|
|
1016
|
+
};
|
|
1017
|
+
};
|
|
1018
|
+
readonly required: readonly ["name", "begin", "end"];
|
|
1019
|
+
};
|
|
1020
|
+
};
|
|
1021
|
+
}, {
|
|
1022
|
+
readonly name: "delete";
|
|
1023
|
+
readonly display: "删除执行";
|
|
1024
|
+
readonly type: "delete";
|
|
1025
|
+
readonly method: "delete";
|
|
1026
|
+
readonly path: "/executions/{executionID}";
|
|
1027
|
+
readonly resultType: "text";
|
|
1028
|
+
readonly pathParams: {
|
|
1029
|
+
readonly executionID: "执行ID";
|
|
1030
|
+
};
|
|
1031
|
+
readonly render: "action";
|
|
1032
|
+
}];
|
|
1033
|
+
}, {
|
|
1034
|
+
readonly name: "productplan";
|
|
1035
|
+
readonly display: "产品计划";
|
|
1036
|
+
readonly description: "产品计划管理,支持获取产品计划列表,支持获取产品下的产品计划、创建产品计划、获取产品计划详情、修改产品计划、删除产品计划";
|
|
1037
|
+
readonly actions: readonly [{
|
|
1038
|
+
readonly name: "list";
|
|
1039
|
+
readonly display: "获取产品计划列表,支持获取产品下的产品计划";
|
|
1040
|
+
readonly type: "list";
|
|
1041
|
+
readonly method: "get";
|
|
1042
|
+
readonly path: "/{scope}/{scopeID}/productplans";
|
|
1043
|
+
readonly resultType: "list";
|
|
1044
|
+
readonly pagerGetter: "pager";
|
|
1045
|
+
readonly resultGetter: "productplans";
|
|
1046
|
+
readonly pathParams: {
|
|
1047
|
+
readonly scope: {
|
|
1048
|
+
readonly description: "产品计划范围";
|
|
1049
|
+
readonly options: readonly [{
|
|
1050
|
+
readonly value: "products";
|
|
1051
|
+
readonly label: "产品";
|
|
1052
|
+
}];
|
|
1053
|
+
};
|
|
1054
|
+
readonly scopeID: "范围ID";
|
|
1055
|
+
};
|
|
1056
|
+
readonly params: readonly [{
|
|
1057
|
+
readonly name: "browseType";
|
|
1058
|
+
readonly required: false;
|
|
1059
|
+
readonly type: "string";
|
|
1060
|
+
readonly description: "执行状态,默认是undone";
|
|
1061
|
+
readonly defaultValue: "undone";
|
|
1062
|
+
readonly options: readonly [{
|
|
1063
|
+
readonly value: "all";
|
|
1064
|
+
readonly label: "全部";
|
|
1065
|
+
}, {
|
|
1066
|
+
readonly value: "undone";
|
|
1067
|
+
readonly label: "未完成";
|
|
1068
|
+
}, {
|
|
1069
|
+
readonly value: "wait";
|
|
1070
|
+
readonly label: "未开始";
|
|
1071
|
+
}, {
|
|
1072
|
+
readonly value: "doing";
|
|
1073
|
+
readonly label: "进行中";
|
|
1074
|
+
}];
|
|
1075
|
+
}, {
|
|
1076
|
+
readonly name: "orderBy";
|
|
1077
|
+
readonly required: false;
|
|
1078
|
+
readonly type: "string";
|
|
1079
|
+
readonly description: "排序";
|
|
1080
|
+
readonly options: readonly [{
|
|
1081
|
+
readonly value: "id_asc";
|
|
1082
|
+
readonly label: "ID 升序";
|
|
1083
|
+
}, {
|
|
1084
|
+
readonly value: "id_desc";
|
|
1085
|
+
readonly label: "ID 降序";
|
|
1086
|
+
}, {
|
|
1087
|
+
readonly value: "title_asc";
|
|
1088
|
+
readonly label: "名称 升序";
|
|
1089
|
+
}, {
|
|
1090
|
+
readonly value: "title_desc";
|
|
1091
|
+
readonly label: "名称 降序";
|
|
1092
|
+
}, {
|
|
1093
|
+
readonly value: "begin_asc";
|
|
1094
|
+
readonly label: "开始日期 升序";
|
|
1095
|
+
}, {
|
|
1096
|
+
readonly value: "begin_desc";
|
|
1097
|
+
readonly label: "开始日期 降序";
|
|
1098
|
+
}, {
|
|
1099
|
+
readonly value: "end_asc";
|
|
1100
|
+
readonly label: "结束日期 升序";
|
|
1101
|
+
}, {
|
|
1102
|
+
readonly value: "end_desc";
|
|
1103
|
+
readonly label: "结束日期 降序";
|
|
1104
|
+
}, {
|
|
1105
|
+
readonly value: "status_asc";
|
|
1106
|
+
readonly label: "状态 升序";
|
|
1107
|
+
}];
|
|
1108
|
+
}, {
|
|
1109
|
+
readonly name: "recPerPage";
|
|
1110
|
+
readonly required: false;
|
|
1111
|
+
readonly type: "number";
|
|
1112
|
+
readonly description: "每页数量,不超过1000";
|
|
1113
|
+
}, {
|
|
1114
|
+
readonly name: "pageID";
|
|
1115
|
+
readonly required: false;
|
|
1116
|
+
readonly type: "number";
|
|
1117
|
+
readonly description: "页码,从第1页开始";
|
|
1118
|
+
}];
|
|
1119
|
+
}, {
|
|
1120
|
+
readonly name: "create";
|
|
1121
|
+
readonly display: "创建产品计划";
|
|
1122
|
+
readonly type: "create";
|
|
1123
|
+
readonly method: "post";
|
|
1124
|
+
readonly path: "/productplans";
|
|
1125
|
+
readonly resultType: "object";
|
|
1126
|
+
readonly requestBody: {
|
|
1127
|
+
readonly required: true;
|
|
1128
|
+
readonly type: "object";
|
|
1129
|
+
readonly schema: {
|
|
1130
|
+
readonly type: "object";
|
|
1131
|
+
readonly properties: {
|
|
1132
|
+
readonly productID: {
|
|
1133
|
+
readonly type: "integer";
|
|
1134
|
+
readonly description: "产品ID";
|
|
1135
|
+
readonly format: "int32";
|
|
1136
|
+
};
|
|
1137
|
+
readonly title: {
|
|
1138
|
+
readonly type: "string";
|
|
1139
|
+
readonly description: "计划名称";
|
|
1140
|
+
};
|
|
1141
|
+
readonly parent: {
|
|
1142
|
+
readonly type: "integer";
|
|
1143
|
+
readonly description: "父计划ID";
|
|
1144
|
+
readonly format: "int32";
|
|
1145
|
+
};
|
|
1146
|
+
readonly begin: {
|
|
1147
|
+
readonly type: "string";
|
|
1148
|
+
readonly description: "开始日期";
|
|
1149
|
+
};
|
|
1150
|
+
readonly end: {
|
|
1151
|
+
readonly type: "string";
|
|
1152
|
+
readonly description: "结束日期";
|
|
1153
|
+
};
|
|
1154
|
+
readonly branchID: {
|
|
1155
|
+
readonly type: "integer";
|
|
1156
|
+
readonly description: "分支ID";
|
|
1157
|
+
readonly format: "int32";
|
|
1158
|
+
};
|
|
1159
|
+
readonly desc: {
|
|
1160
|
+
readonly type: "string";
|
|
1161
|
+
readonly description: "计划描述";
|
|
1162
|
+
};
|
|
1163
|
+
};
|
|
1164
|
+
readonly required: readonly ["productID", "title"];
|
|
1165
|
+
};
|
|
1166
|
+
};
|
|
1167
|
+
}, {
|
|
1168
|
+
readonly name: "get";
|
|
1169
|
+
readonly display: "获取产品计划详情";
|
|
1170
|
+
readonly type: "get";
|
|
1171
|
+
readonly method: "get";
|
|
1172
|
+
readonly path: "/productplans/{planID}";
|
|
1173
|
+
readonly resultType: "object";
|
|
1174
|
+
readonly resultGetter: "productplan";
|
|
1175
|
+
readonly pathParams: {
|
|
1176
|
+
readonly planID: "产品计划ID";
|
|
1177
|
+
};
|
|
1178
|
+
}, {
|
|
1179
|
+
readonly name: "update";
|
|
1180
|
+
readonly display: "修改产品计划";
|
|
1181
|
+
readonly type: "update";
|
|
1182
|
+
readonly method: "put";
|
|
1183
|
+
readonly path: "/productplans/{productplanID}";
|
|
1184
|
+
readonly resultType: "object";
|
|
1185
|
+
readonly pathParams: {
|
|
1186
|
+
readonly productplanID: "产品计划ID";
|
|
1187
|
+
};
|
|
1188
|
+
readonly requestBody: {
|
|
1189
|
+
readonly required: true;
|
|
1190
|
+
readonly type: "object";
|
|
1191
|
+
readonly schema: {
|
|
1192
|
+
readonly type: "object";
|
|
1193
|
+
readonly properties: {
|
|
1194
|
+
readonly title: {
|
|
1195
|
+
readonly type: "string";
|
|
1196
|
+
readonly description: "计划名称";
|
|
1197
|
+
};
|
|
1198
|
+
readonly parent: {
|
|
1199
|
+
readonly type: "integer";
|
|
1200
|
+
readonly description: "父计划";
|
|
1201
|
+
readonly format: "int32";
|
|
1202
|
+
};
|
|
1203
|
+
readonly begin: {
|
|
1204
|
+
readonly type: "string";
|
|
1205
|
+
readonly description: "开始日期";
|
|
1206
|
+
};
|
|
1207
|
+
readonly end: {
|
|
1208
|
+
readonly type: "string";
|
|
1209
|
+
readonly description: "结束日期";
|
|
1210
|
+
};
|
|
1211
|
+
readonly branchID: {
|
|
1212
|
+
readonly type: "integer";
|
|
1213
|
+
readonly description: "分支ID";
|
|
1214
|
+
readonly format: "int32";
|
|
1215
|
+
};
|
|
1216
|
+
readonly desc: {
|
|
1217
|
+
readonly type: "string";
|
|
1218
|
+
readonly description: "计划描述";
|
|
1219
|
+
};
|
|
1220
|
+
};
|
|
1221
|
+
readonly required: readonly ["title"];
|
|
1222
|
+
};
|
|
1223
|
+
};
|
|
1224
|
+
}, {
|
|
1225
|
+
readonly name: "delete";
|
|
1226
|
+
readonly display: "删除产品计划";
|
|
1227
|
+
readonly type: "delete";
|
|
1228
|
+
readonly method: "delete";
|
|
1229
|
+
readonly path: "/productplans/{productplanID}";
|
|
1230
|
+
readonly resultType: "text";
|
|
1231
|
+
readonly pathParams: {
|
|
1232
|
+
readonly productplanID: "产品计划ID";
|
|
1233
|
+
};
|
|
1234
|
+
readonly render: "action";
|
|
1235
|
+
}];
|
|
1236
|
+
}, {
|
|
1237
|
+
readonly name: "story";
|
|
1238
|
+
readonly display: "需求";
|
|
1239
|
+
readonly description: "需求管理,支持获取需求列表,支持获取产品/项目/执行下的需求、创建需求、获取需求详情、修改需求、删除需求、激活需求、变更需求、关闭需求";
|
|
1240
|
+
readonly actions: readonly [{
|
|
1241
|
+
readonly name: "list";
|
|
1242
|
+
readonly display: "获取需求列表,支持获取产品/项目/执行下的需求";
|
|
1243
|
+
readonly type: "list";
|
|
1244
|
+
readonly method: "get";
|
|
1245
|
+
readonly path: "/{scope}/{scopeID}/stories";
|
|
1246
|
+
readonly resultType: "list";
|
|
1247
|
+
readonly pagerGetter: "pager";
|
|
1248
|
+
readonly resultGetter: "stories";
|
|
1249
|
+
readonly pathParams: {
|
|
1250
|
+
readonly scope: {
|
|
1251
|
+
readonly description: "需求范围";
|
|
1252
|
+
readonly options: readonly [{
|
|
1253
|
+
readonly value: "products";
|
|
1254
|
+
readonly label: "产品";
|
|
1255
|
+
}, {
|
|
1256
|
+
readonly value: "projects";
|
|
1257
|
+
readonly label: "项目";
|
|
1258
|
+
}, {
|
|
1259
|
+
readonly value: "executions";
|
|
1260
|
+
readonly label: "执行";
|
|
1261
|
+
}];
|
|
1262
|
+
};
|
|
1263
|
+
readonly scopeID: "范围ID";
|
|
1264
|
+
};
|
|
1265
|
+
readonly params: readonly [{
|
|
1266
|
+
readonly name: "browseType";
|
|
1267
|
+
readonly required: false;
|
|
1268
|
+
readonly type: "string";
|
|
1269
|
+
readonly description: "状态,默认是unclosed";
|
|
1270
|
+
readonly defaultValue: "unclosed";
|
|
1271
|
+
readonly options: readonly [{
|
|
1272
|
+
readonly value: "allstory";
|
|
1273
|
+
readonly label: "全部";
|
|
1274
|
+
}, {
|
|
1275
|
+
readonly value: "assignedtome";
|
|
1276
|
+
readonly label: "指派给我";
|
|
1277
|
+
}, {
|
|
1278
|
+
readonly value: "openedbyme";
|
|
1279
|
+
readonly label: "我创建";
|
|
1280
|
+
}, {
|
|
1281
|
+
readonly value: "reviewbyme";
|
|
1282
|
+
readonly label: "待我评审";
|
|
1283
|
+
}, {
|
|
1284
|
+
readonly value: "draftstory";
|
|
1285
|
+
readonly label: "草稿";
|
|
1286
|
+
}];
|
|
1287
|
+
}, {
|
|
1288
|
+
readonly name: "orderBy";
|
|
1289
|
+
readonly required: false;
|
|
1290
|
+
readonly type: "string";
|
|
1291
|
+
readonly description: "排序";
|
|
1292
|
+
readonly options: readonly [{
|
|
1293
|
+
readonly value: "id_asc";
|
|
1294
|
+
readonly label: "ID 升序";
|
|
1295
|
+
}, {
|
|
1296
|
+
readonly value: "id_desc";
|
|
1297
|
+
readonly label: "ID 降序";
|
|
1298
|
+
}, {
|
|
1299
|
+
readonly value: "title_asc";
|
|
1300
|
+
readonly label: "标题 升序";
|
|
1301
|
+
}, {
|
|
1302
|
+
readonly value: "title_desc";
|
|
1303
|
+
readonly label: "标题 降序";
|
|
1304
|
+
}, {
|
|
1305
|
+
readonly value: "status_asc";
|
|
1306
|
+
readonly label: "状态 升序";
|
|
1307
|
+
}, {
|
|
1308
|
+
readonly value: "status_desc";
|
|
1309
|
+
readonly label: "状态 降序";
|
|
1310
|
+
}];
|
|
1311
|
+
}, {
|
|
1312
|
+
readonly name: "recPerPage";
|
|
1313
|
+
readonly required: false;
|
|
1314
|
+
readonly type: "number";
|
|
1315
|
+
readonly description: "每页数量,不超过1000";
|
|
1316
|
+
}, {
|
|
1317
|
+
readonly name: "pageID";
|
|
1318
|
+
readonly required: false;
|
|
1319
|
+
readonly type: "number";
|
|
1320
|
+
readonly description: "页码,从第1页开始";
|
|
1321
|
+
}];
|
|
1322
|
+
}, {
|
|
1323
|
+
readonly name: "create";
|
|
1324
|
+
readonly display: "创建需求";
|
|
1325
|
+
readonly type: "create";
|
|
1326
|
+
readonly method: "post";
|
|
1327
|
+
readonly path: "/stories";
|
|
1328
|
+
readonly resultType: "object";
|
|
1329
|
+
readonly requestBody: {
|
|
1330
|
+
readonly required: true;
|
|
1331
|
+
readonly type: "object";
|
|
1332
|
+
readonly schema: {
|
|
1333
|
+
readonly type: "object";
|
|
1334
|
+
readonly properties: {
|
|
1335
|
+
readonly productID: {
|
|
1336
|
+
readonly type: "integer";
|
|
1337
|
+
readonly description: "产品ID";
|
|
1338
|
+
readonly format: "int32";
|
|
1339
|
+
};
|
|
1340
|
+
readonly title: {
|
|
1341
|
+
readonly type: "string";
|
|
1342
|
+
};
|
|
1343
|
+
readonly pri: {
|
|
1344
|
+
readonly type: "integer";
|
|
1345
|
+
readonly description: "优先级,默认是3";
|
|
1346
|
+
readonly format: "int32";
|
|
1347
|
+
};
|
|
1348
|
+
readonly module: {
|
|
1349
|
+
readonly type: "integer";
|
|
1350
|
+
readonly description: "所属模块";
|
|
1351
|
+
readonly format: "int32";
|
|
1352
|
+
};
|
|
1353
|
+
readonly parent: {
|
|
1354
|
+
readonly type: "integer";
|
|
1355
|
+
readonly description: "父需求";
|
|
1356
|
+
readonly format: "int32";
|
|
1357
|
+
};
|
|
1358
|
+
readonly estimate: {
|
|
1359
|
+
readonly type: "number";
|
|
1360
|
+
readonly description: "预计工时";
|
|
1361
|
+
readonly format: "float";
|
|
1362
|
+
};
|
|
1363
|
+
readonly spec: {
|
|
1364
|
+
readonly type: "string";
|
|
1365
|
+
readonly description: "需求描述";
|
|
1366
|
+
};
|
|
1367
|
+
readonly category: {
|
|
1368
|
+
readonly type: "integer";
|
|
1369
|
+
readonly description: "类别(feature 功能 | interface 接口 | performance 性能 | safe 安全 | experience 体验 | improve 改进 | other 其他)";
|
|
1370
|
+
readonly format: "int32";
|
|
1371
|
+
};
|
|
1372
|
+
readonly source: {
|
|
1373
|
+
readonly type: "string";
|
|
1374
|
+
readonly description: "来源(customer 客户 | user 用户 | po 产品经理 | market 市场 | service 客服 | operation 运营 | support 技术支持 | competitor 竞争对手 | partner 合作伙伴 | dev 开发人员 | tester 测试人员 | bug Bug | forum 论坛 | other 其他)";
|
|
1375
|
+
};
|
|
1376
|
+
readonly verify: {
|
|
1377
|
+
readonly type: "string";
|
|
1378
|
+
readonly description: "验收标准";
|
|
1379
|
+
};
|
|
1380
|
+
readonly assignedTo: {
|
|
1381
|
+
readonly type: "string";
|
|
1382
|
+
readonly description: "指派给";
|
|
1383
|
+
};
|
|
1384
|
+
readonly reviewer: {
|
|
1385
|
+
readonly type: "array";
|
|
1386
|
+
readonly items: {
|
|
1387
|
+
readonly type: "string";
|
|
1388
|
+
};
|
|
1389
|
+
readonly description: "评审人,如果设置必须评审,必须填写";
|
|
1390
|
+
};
|
|
1391
|
+
readonly project: {
|
|
1392
|
+
readonly type: "integer";
|
|
1393
|
+
readonly description: "所属项目";
|
|
1394
|
+
readonly format: "int32";
|
|
1395
|
+
};
|
|
1396
|
+
readonly execution: {
|
|
1397
|
+
readonly type: "integer";
|
|
1398
|
+
readonly description: "所属执行";
|
|
1399
|
+
readonly format: "int32";
|
|
1400
|
+
};
|
|
1401
|
+
};
|
|
1402
|
+
readonly required: readonly ["productID", "title"];
|
|
1403
|
+
};
|
|
1404
|
+
};
|
|
1405
|
+
}, {
|
|
1406
|
+
readonly name: "get";
|
|
1407
|
+
readonly display: "获取需求详情";
|
|
1408
|
+
readonly type: "get";
|
|
1409
|
+
readonly method: "get";
|
|
1410
|
+
readonly path: "/stories/{storyID}";
|
|
1411
|
+
readonly resultType: "object";
|
|
1412
|
+
readonly resultGetter: "story";
|
|
1413
|
+
readonly pathParams: {
|
|
1414
|
+
readonly storyID: "需求ID";
|
|
1415
|
+
};
|
|
1416
|
+
}, {
|
|
1417
|
+
readonly name: "update";
|
|
1418
|
+
readonly display: "修改需求";
|
|
1419
|
+
readonly type: "update";
|
|
1420
|
+
readonly method: "put";
|
|
1421
|
+
readonly path: "/stories/{storyID}";
|
|
1422
|
+
readonly resultType: "object";
|
|
1423
|
+
readonly pathParams: {
|
|
1424
|
+
readonly storyID: "需求ID";
|
|
1425
|
+
};
|
|
1426
|
+
readonly requestBody: {
|
|
1427
|
+
readonly required: true;
|
|
1428
|
+
readonly type: "object";
|
|
1429
|
+
readonly schema: {
|
|
1430
|
+
readonly type: "object";
|
|
1431
|
+
readonly properties: {
|
|
1432
|
+
readonly title: {
|
|
1433
|
+
readonly type: "string";
|
|
1434
|
+
};
|
|
1435
|
+
readonly pri: {
|
|
1436
|
+
readonly type: "integer";
|
|
1437
|
+
readonly description: "优先级,默认是3";
|
|
1438
|
+
readonly format: "int32";
|
|
1439
|
+
};
|
|
1440
|
+
readonly module: {
|
|
1441
|
+
readonly type: "integer";
|
|
1442
|
+
readonly description: "所属模块";
|
|
1443
|
+
readonly format: "int32";
|
|
1444
|
+
};
|
|
1445
|
+
readonly parent: {
|
|
1446
|
+
readonly type: "integer";
|
|
1447
|
+
readonly description: "父需求";
|
|
1448
|
+
readonly format: "int32";
|
|
1449
|
+
};
|
|
1450
|
+
readonly estimate: {
|
|
1451
|
+
readonly type: "number";
|
|
1452
|
+
readonly description: "预计工时";
|
|
1453
|
+
readonly format: "float";
|
|
1454
|
+
};
|
|
1455
|
+
readonly category: {
|
|
1456
|
+
readonly type: "integer";
|
|
1457
|
+
readonly description: "类别(feature 功能 | interface 接口 | performance 性能 | safe 安全 | experience 体验 | improve 改进 | other 其他)";
|
|
1458
|
+
readonly format: "int32";
|
|
1459
|
+
};
|
|
1460
|
+
readonly source: {
|
|
1461
|
+
readonly type: "string";
|
|
1462
|
+
readonly description: "来源(customer 客户 | user 用户 | po 产品经理 | market 市场 | service 客服 | operation 运营 | support 技术支持 | competitor 竞争对手 | partner 合作伙伴 | dev 开发人员 | tester 测试人员 | bug Bug | forum 论坛 | other 其他)";
|
|
1463
|
+
};
|
|
1464
|
+
readonly assignedTo: {
|
|
1465
|
+
readonly type: "string";
|
|
1466
|
+
readonly description: "指派给";
|
|
1467
|
+
};
|
|
1468
|
+
};
|
|
1469
|
+
readonly required: readonly ["title"];
|
|
1470
|
+
};
|
|
1471
|
+
};
|
|
1472
|
+
}, {
|
|
1473
|
+
readonly name: "delete";
|
|
1474
|
+
readonly display: "删除需求";
|
|
1475
|
+
readonly type: "delete";
|
|
1476
|
+
readonly method: "delete";
|
|
1477
|
+
readonly path: "/stories/{storyID}";
|
|
1478
|
+
readonly resultType: "text";
|
|
1479
|
+
readonly pathParams: {
|
|
1480
|
+
readonly storyID: "需求ID";
|
|
1481
|
+
};
|
|
1482
|
+
readonly render: "action";
|
|
1483
|
+
}, {
|
|
1484
|
+
readonly name: "activate";
|
|
1485
|
+
readonly display: "激活需求";
|
|
1486
|
+
readonly type: "action";
|
|
1487
|
+
readonly method: "put";
|
|
1488
|
+
readonly path: "/stories/{storyID}/activate";
|
|
1489
|
+
readonly resultType: "text";
|
|
1490
|
+
readonly pathParams: {
|
|
1491
|
+
readonly storyID: "需求ID";
|
|
1492
|
+
};
|
|
1493
|
+
readonly requestBody: {
|
|
1494
|
+
readonly required: true;
|
|
1495
|
+
readonly type: "object";
|
|
1496
|
+
readonly schema: {
|
|
1497
|
+
readonly type: "object";
|
|
1498
|
+
readonly properties: {
|
|
1499
|
+
readonly assignedTo: {
|
|
1500
|
+
readonly type: "string";
|
|
1501
|
+
readonly description: "指派给";
|
|
1502
|
+
};
|
|
1503
|
+
readonly comment: {
|
|
1504
|
+
readonly type: "string";
|
|
1505
|
+
readonly description: "备注";
|
|
1506
|
+
};
|
|
1507
|
+
};
|
|
1508
|
+
};
|
|
1509
|
+
};
|
|
1510
|
+
readonly render: "action";
|
|
1511
|
+
}, {
|
|
1512
|
+
readonly name: "change";
|
|
1513
|
+
readonly display: "变更需求";
|
|
1514
|
+
readonly type: "action";
|
|
1515
|
+
readonly method: "put";
|
|
1516
|
+
readonly path: "/stories/{storyID}/change";
|
|
1517
|
+
readonly resultType: "text";
|
|
1518
|
+
readonly pathParams: {
|
|
1519
|
+
readonly storyID: "需求ID";
|
|
1520
|
+
};
|
|
1521
|
+
readonly requestBody: {
|
|
1522
|
+
readonly required: true;
|
|
1523
|
+
readonly type: "object";
|
|
1524
|
+
readonly schema: {
|
|
1525
|
+
readonly type: "object";
|
|
1526
|
+
readonly properties: {
|
|
1527
|
+
readonly title: {
|
|
1528
|
+
readonly type: "string";
|
|
1529
|
+
readonly description: "需求名称";
|
|
1530
|
+
};
|
|
1531
|
+
readonly reviewer: {
|
|
1532
|
+
readonly type: "array";
|
|
1533
|
+
readonly items: {
|
|
1534
|
+
readonly type: "string";
|
|
1535
|
+
};
|
|
1536
|
+
readonly description: "评审人员";
|
|
1537
|
+
};
|
|
1538
|
+
readonly spec: {
|
|
1539
|
+
readonly type: "string";
|
|
1540
|
+
readonly description: "需求描述";
|
|
1541
|
+
};
|
|
1542
|
+
readonly verify: {
|
|
1543
|
+
readonly type: "string";
|
|
1544
|
+
readonly description: "验收标准";
|
|
1545
|
+
};
|
|
1546
|
+
};
|
|
1547
|
+
readonly required: readonly ["reviewer"];
|
|
1548
|
+
};
|
|
1549
|
+
};
|
|
1550
|
+
readonly render: "action";
|
|
1551
|
+
}, {
|
|
1552
|
+
readonly name: "close";
|
|
1553
|
+
readonly display: "关闭需求";
|
|
1554
|
+
readonly type: "action";
|
|
1555
|
+
readonly method: "put";
|
|
1556
|
+
readonly path: "/stories/{storyID}/close";
|
|
1557
|
+
readonly resultType: "text";
|
|
1558
|
+
readonly pathParams: {
|
|
1559
|
+
readonly storyID: "需求ID";
|
|
1560
|
+
};
|
|
1561
|
+
readonly requestBody: {
|
|
1562
|
+
readonly required: true;
|
|
1563
|
+
readonly type: "object";
|
|
1564
|
+
readonly schema: {
|
|
1565
|
+
readonly type: "object";
|
|
1566
|
+
readonly properties: {
|
|
1567
|
+
readonly closedReason: {
|
|
1568
|
+
readonly type: "string";
|
|
1569
|
+
readonly description: "关闭原因(done 已完成 | subdivided 已拆分 | duplicate 重复 | postponed 延期 | willnotdo 不做 | cancel 已取消 | bydesign 设计如此)";
|
|
1570
|
+
};
|
|
1571
|
+
readonly comment: {
|
|
1572
|
+
readonly type: "string";
|
|
1573
|
+
readonly description: "备注";
|
|
1574
|
+
};
|
|
1575
|
+
};
|
|
1576
|
+
readonly required: readonly ["closedReason"];
|
|
1577
|
+
};
|
|
1578
|
+
};
|
|
1579
|
+
readonly render: "action";
|
|
1580
|
+
}];
|
|
1581
|
+
}, {
|
|
1582
|
+
readonly name: "epic";
|
|
1583
|
+
readonly display: "业务需求";
|
|
1584
|
+
readonly description: "业务需求管理,支持获取业务需求列表,支持获取产品下的业务需求、创建业务需求、获取业务需求详情、修改业务需求、删除业务需求、激活业务需求、变更业务需求、关闭业务需求";
|
|
1585
|
+
readonly actions: readonly [{
|
|
1586
|
+
readonly name: "list";
|
|
1587
|
+
readonly display: "获取业务需求列表,支持获取产品下的业务需求";
|
|
1588
|
+
readonly type: "list";
|
|
1589
|
+
readonly method: "get";
|
|
1590
|
+
readonly path: "/{scope}/{scopeID}/epics";
|
|
1591
|
+
readonly resultType: "list";
|
|
1592
|
+
readonly pagerGetter: "pager";
|
|
1593
|
+
readonly resultGetter: "epics";
|
|
1594
|
+
readonly pathParams: {
|
|
1595
|
+
readonly scope: {
|
|
1596
|
+
readonly description: "业务需求范围";
|
|
1597
|
+
readonly options: readonly [{
|
|
1598
|
+
readonly value: "products";
|
|
1599
|
+
readonly label: "产品";
|
|
1600
|
+
}];
|
|
1601
|
+
};
|
|
1602
|
+
readonly scopeID: "范围ID";
|
|
1603
|
+
};
|
|
1604
|
+
readonly params: readonly [{
|
|
1605
|
+
readonly name: "browseType";
|
|
1606
|
+
readonly required: false;
|
|
1607
|
+
readonly type: "string";
|
|
1608
|
+
readonly description: "状态,默认是unclosed";
|
|
1609
|
+
readonly defaultValue: "unclosed";
|
|
1610
|
+
readonly options: readonly [{
|
|
1611
|
+
readonly value: "allstory";
|
|
1612
|
+
readonly label: "全部";
|
|
1613
|
+
}, {
|
|
1614
|
+
readonly value: "assignedtome";
|
|
1615
|
+
readonly label: "指派给我";
|
|
1616
|
+
}, {
|
|
1617
|
+
readonly value: "openedbyme";
|
|
1618
|
+
readonly label: "我创建";
|
|
1619
|
+
}, {
|
|
1620
|
+
readonly value: "reviewbyme";
|
|
1621
|
+
readonly label: "待我评审";
|
|
1622
|
+
}, {
|
|
1623
|
+
readonly value: "draftstory";
|
|
1624
|
+
readonly label: "草稿";
|
|
1625
|
+
}];
|
|
1626
|
+
}, {
|
|
1627
|
+
readonly name: "orderBy";
|
|
1628
|
+
readonly required: false;
|
|
1629
|
+
readonly type: "string";
|
|
1630
|
+
readonly description: "排序";
|
|
1631
|
+
readonly options: readonly [{
|
|
1632
|
+
readonly value: "id_asc";
|
|
1633
|
+
readonly label: "ID 升序";
|
|
1634
|
+
}, {
|
|
1635
|
+
readonly value: "id_desc";
|
|
1636
|
+
readonly label: "ID 降序";
|
|
1637
|
+
}, {
|
|
1638
|
+
readonly value: "title_asc";
|
|
1639
|
+
readonly label: "标题 升序";
|
|
1640
|
+
}, {
|
|
1641
|
+
readonly value: "title_desc";
|
|
1642
|
+
readonly label: "标题 降序";
|
|
1643
|
+
}, {
|
|
1644
|
+
readonly value: "status_asc";
|
|
1645
|
+
readonly label: "状态 升序";
|
|
1646
|
+
}, {
|
|
1647
|
+
readonly value: "status_desc";
|
|
1648
|
+
readonly label: "状态 降序";
|
|
1649
|
+
}];
|
|
1650
|
+
}, {
|
|
1651
|
+
readonly name: "recPerPage";
|
|
1652
|
+
readonly required: false;
|
|
1653
|
+
readonly type: "number";
|
|
1654
|
+
readonly description: "每页数量,不超过1000";
|
|
1655
|
+
}, {
|
|
1656
|
+
readonly name: "pageID";
|
|
1657
|
+
readonly required: false;
|
|
1658
|
+
readonly type: "number";
|
|
1659
|
+
readonly description: "页码,从第1页开始";
|
|
1660
|
+
}];
|
|
1661
|
+
}, {
|
|
1662
|
+
readonly name: "create";
|
|
1663
|
+
readonly display: "创建业务需求";
|
|
1664
|
+
readonly type: "create";
|
|
1665
|
+
readonly method: "post";
|
|
1666
|
+
readonly path: "/epics";
|
|
1667
|
+
readonly resultType: "object";
|
|
1668
|
+
readonly requestBody: {
|
|
1669
|
+
readonly required: true;
|
|
1670
|
+
readonly type: "object";
|
|
1671
|
+
readonly schema: {
|
|
1672
|
+
readonly type: "object";
|
|
1673
|
+
readonly properties: {
|
|
1674
|
+
readonly productID: {
|
|
1675
|
+
readonly type: "integer";
|
|
1676
|
+
readonly description: "产品ID";
|
|
1677
|
+
readonly format: "int32";
|
|
1678
|
+
};
|
|
1679
|
+
readonly title: {
|
|
1680
|
+
readonly type: "string";
|
|
1681
|
+
};
|
|
1682
|
+
readonly pri: {
|
|
1683
|
+
readonly type: "integer";
|
|
1684
|
+
readonly description: "优先级,默认是3";
|
|
1685
|
+
readonly format: "int32";
|
|
1686
|
+
};
|
|
1687
|
+
readonly module: {
|
|
1688
|
+
readonly type: "integer";
|
|
1689
|
+
readonly description: "所属模块";
|
|
1690
|
+
readonly format: "int32";
|
|
1691
|
+
};
|
|
1692
|
+
readonly parent: {
|
|
1693
|
+
readonly type: "integer";
|
|
1694
|
+
readonly description: "父业务需求";
|
|
1695
|
+
readonly format: "int32";
|
|
1696
|
+
};
|
|
1697
|
+
readonly estimate: {
|
|
1698
|
+
readonly type: "number";
|
|
1699
|
+
readonly description: "预计工时";
|
|
1700
|
+
readonly format: "float";
|
|
1701
|
+
};
|
|
1702
|
+
readonly spec: {
|
|
1703
|
+
readonly type: "string";
|
|
1704
|
+
readonly description: "业务需求描述";
|
|
1705
|
+
};
|
|
1706
|
+
readonly category: {
|
|
1707
|
+
readonly type: "integer";
|
|
1708
|
+
readonly description: "类别(feature 功能 | interface 接口 | performance 性能 | safe 安全 | experience 体验 | improve 改进 | other 其他)";
|
|
1709
|
+
readonly format: "int32";
|
|
1710
|
+
};
|
|
1711
|
+
readonly source: {
|
|
1712
|
+
readonly type: "string";
|
|
1713
|
+
readonly description: "来源(customer 客户 | user 用户 | po 产品经理 | market 市场 | service 客服 | operation 运营 | support 技术支持 | competitor 竞争对手 | partner 合作伙伴 | dev 开发人员 | tester 测试人员 | bug Bug | forum 论坛 | other 其他)";
|
|
1714
|
+
};
|
|
1715
|
+
readonly verify: {
|
|
1716
|
+
readonly type: "string";
|
|
1717
|
+
readonly description: "验收标准";
|
|
1718
|
+
};
|
|
1719
|
+
readonly assignedTo: {
|
|
1720
|
+
readonly type: "string";
|
|
1721
|
+
readonly description: "指派给";
|
|
1722
|
+
};
|
|
1723
|
+
readonly reviewer: {
|
|
1724
|
+
readonly type: "array";
|
|
1725
|
+
readonly items: {
|
|
1726
|
+
readonly type: "string";
|
|
1727
|
+
};
|
|
1728
|
+
readonly description: "评审人,如果设置必须评审,必须填写";
|
|
1729
|
+
};
|
|
1730
|
+
};
|
|
1731
|
+
readonly required: readonly ["productID", "title"];
|
|
1732
|
+
};
|
|
1733
|
+
};
|
|
1734
|
+
}, {
|
|
1735
|
+
readonly name: "get";
|
|
1736
|
+
readonly display: "获取业务需求详情";
|
|
1737
|
+
readonly type: "get";
|
|
1738
|
+
readonly method: "get";
|
|
1739
|
+
readonly path: "/epics/{storyID}";
|
|
1740
|
+
readonly resultType: "object";
|
|
1741
|
+
readonly resultGetter: "epic";
|
|
1742
|
+
readonly pathParams: {
|
|
1743
|
+
readonly storyID: "需求ID";
|
|
1744
|
+
};
|
|
1745
|
+
}, {
|
|
1746
|
+
readonly name: "update";
|
|
1747
|
+
readonly display: "修改业务需求";
|
|
1748
|
+
readonly type: "update";
|
|
1749
|
+
readonly method: "put";
|
|
1750
|
+
readonly path: "/epics/{epicID}";
|
|
1751
|
+
readonly resultType: "object";
|
|
1752
|
+
readonly pathParams: {
|
|
1753
|
+
readonly epicID: "业务需求ID";
|
|
1754
|
+
};
|
|
1755
|
+
readonly requestBody: {
|
|
1756
|
+
readonly required: true;
|
|
1757
|
+
readonly type: "object";
|
|
1758
|
+
readonly schema: {
|
|
1759
|
+
readonly type: "object";
|
|
1760
|
+
readonly properties: {
|
|
1761
|
+
readonly title: {
|
|
1762
|
+
readonly type: "string";
|
|
1763
|
+
readonly description: "需求名称";
|
|
1764
|
+
};
|
|
1765
|
+
readonly pri: {
|
|
1766
|
+
readonly type: "integer";
|
|
1767
|
+
readonly description: "优先级,默认是3";
|
|
1768
|
+
readonly format: "int32";
|
|
1769
|
+
};
|
|
1770
|
+
readonly module: {
|
|
1771
|
+
readonly type: "integer";
|
|
1772
|
+
readonly description: "所属模块";
|
|
1773
|
+
readonly format: "int32";
|
|
1774
|
+
};
|
|
1775
|
+
readonly parent: {
|
|
1776
|
+
readonly type: "integer";
|
|
1777
|
+
readonly description: "父业务需求";
|
|
1778
|
+
readonly format: "int32";
|
|
1779
|
+
};
|
|
1780
|
+
readonly estimate: {
|
|
1781
|
+
readonly type: "number";
|
|
1782
|
+
readonly description: "预计工时";
|
|
1783
|
+
readonly format: "float";
|
|
1784
|
+
};
|
|
1785
|
+
readonly category: {
|
|
1786
|
+
readonly type: "integer";
|
|
1787
|
+
readonly description: "类别(feature 功能 | interface 接口 | performance 性能 | safe 安全 | experience 体验 | improve 改进 | other 其他)";
|
|
1788
|
+
readonly format: "int32";
|
|
1789
|
+
};
|
|
1790
|
+
readonly source: {
|
|
1791
|
+
readonly type: "string";
|
|
1792
|
+
readonly description: "来源(customer 客户 | user 用户 | po 产品经理 | market 市场 | service 客服 | operation 运营 | support 技术支持 | competitor 竞争对手 | partner 合作伙伴 | dev 开发人员 | tester 测试人员 | bug Bug | forum 论坛 | other 其他)";
|
|
1793
|
+
};
|
|
1794
|
+
readonly assignedTo: {
|
|
1795
|
+
readonly type: "string";
|
|
1796
|
+
readonly description: "指派给";
|
|
1797
|
+
};
|
|
1798
|
+
};
|
|
1799
|
+
readonly required: readonly ["title"];
|
|
1800
|
+
};
|
|
1801
|
+
};
|
|
1802
|
+
}, {
|
|
1803
|
+
readonly name: "delete";
|
|
1804
|
+
readonly display: "删除业务需求";
|
|
1805
|
+
readonly type: "delete";
|
|
1806
|
+
readonly method: "delete";
|
|
1807
|
+
readonly path: "/epics/{epicID}";
|
|
1808
|
+
readonly resultType: "text";
|
|
1809
|
+
readonly pathParams: {
|
|
1810
|
+
readonly epicID: "业务需求ID";
|
|
1811
|
+
};
|
|
1812
|
+
readonly render: "action";
|
|
1813
|
+
}, {
|
|
1814
|
+
readonly name: "activate";
|
|
1815
|
+
readonly display: "激活业务需求";
|
|
1816
|
+
readonly type: "action";
|
|
1817
|
+
readonly method: "put";
|
|
1818
|
+
readonly path: "/epics/{epicID}/activate";
|
|
1819
|
+
readonly resultType: "text";
|
|
1820
|
+
readonly pathParams: {
|
|
1821
|
+
readonly epicID: "业务需求ID";
|
|
1822
|
+
};
|
|
1823
|
+
readonly requestBody: {
|
|
1824
|
+
readonly required: true;
|
|
1825
|
+
readonly type: "object";
|
|
1826
|
+
readonly schema: {
|
|
1827
|
+
readonly type: "object";
|
|
1828
|
+
readonly properties: {
|
|
1829
|
+
readonly assignedTo: {
|
|
1830
|
+
readonly type: "string";
|
|
1831
|
+
readonly description: "指派给";
|
|
1832
|
+
};
|
|
1833
|
+
readonly comment: {
|
|
1834
|
+
readonly type: "string";
|
|
1835
|
+
readonly description: "备注";
|
|
1836
|
+
};
|
|
1837
|
+
};
|
|
1838
|
+
};
|
|
1839
|
+
};
|
|
1840
|
+
readonly render: "action";
|
|
1841
|
+
}, {
|
|
1842
|
+
readonly name: "change";
|
|
1843
|
+
readonly display: "变更业务需求";
|
|
1844
|
+
readonly type: "action";
|
|
1845
|
+
readonly method: "put";
|
|
1846
|
+
readonly path: "/epics/{epicID}/change";
|
|
1847
|
+
readonly resultType: "text";
|
|
1848
|
+
readonly pathParams: {
|
|
1849
|
+
readonly epicID: "业务需求ID";
|
|
1850
|
+
};
|
|
1851
|
+
readonly requestBody: {
|
|
1852
|
+
readonly required: true;
|
|
1853
|
+
readonly type: "object";
|
|
1854
|
+
readonly schema: {
|
|
1855
|
+
readonly type: "object";
|
|
1856
|
+
readonly properties: {
|
|
1857
|
+
readonly title: {
|
|
1858
|
+
readonly type: "string";
|
|
1859
|
+
readonly description: "需求名称";
|
|
1860
|
+
};
|
|
1861
|
+
readonly reviewer: {
|
|
1862
|
+
readonly type: "array";
|
|
1863
|
+
readonly items: {
|
|
1864
|
+
readonly type: "string";
|
|
1865
|
+
};
|
|
1866
|
+
readonly description: "评审人员";
|
|
1867
|
+
};
|
|
1868
|
+
readonly spec: {
|
|
1869
|
+
readonly type: "string";
|
|
1870
|
+
readonly description: "需求描述";
|
|
1871
|
+
};
|
|
1872
|
+
readonly verify: {
|
|
1873
|
+
readonly type: "string";
|
|
1874
|
+
readonly description: "验收标准";
|
|
1875
|
+
};
|
|
1876
|
+
};
|
|
1877
|
+
readonly required: readonly ["reviewer"];
|
|
1878
|
+
};
|
|
1879
|
+
};
|
|
1880
|
+
readonly render: "action";
|
|
1881
|
+
}, {
|
|
1882
|
+
readonly name: "close";
|
|
1883
|
+
readonly display: "关闭业务需求";
|
|
1884
|
+
readonly type: "action";
|
|
1885
|
+
readonly method: "put";
|
|
1886
|
+
readonly path: "/epics/{epicID}/close";
|
|
1887
|
+
readonly resultType: "text";
|
|
1888
|
+
readonly pathParams: {
|
|
1889
|
+
readonly epicID: "业务需求ID";
|
|
1890
|
+
};
|
|
1891
|
+
readonly requestBody: {
|
|
1892
|
+
readonly required: true;
|
|
1893
|
+
readonly type: "object";
|
|
1894
|
+
readonly schema: {
|
|
1895
|
+
readonly type: "object";
|
|
1896
|
+
readonly properties: {
|
|
1897
|
+
readonly closedReason: {
|
|
1898
|
+
readonly type: "string";
|
|
1899
|
+
readonly description: "关闭原因(done 已完成 | subdivided 已拆分 | duplicate 重复 | postponed 延期 | willnotdo 不做 | cancel 已取消 | bydesign 设计如此)";
|
|
1900
|
+
};
|
|
1901
|
+
readonly comment: {
|
|
1902
|
+
readonly type: "string";
|
|
1903
|
+
readonly description: "备注";
|
|
1904
|
+
};
|
|
1905
|
+
};
|
|
1906
|
+
readonly required: readonly ["closedReason"];
|
|
1907
|
+
};
|
|
1908
|
+
};
|
|
1909
|
+
readonly render: "action";
|
|
1910
|
+
}];
|
|
1911
|
+
}, {
|
|
1912
|
+
readonly name: "requirement";
|
|
1913
|
+
readonly display: "用户需求";
|
|
1914
|
+
readonly description: "用户需求管理,支持获取用户需求列表,支持获取产品下的用户需求、创建用户需求、获取用户需求详情、修改用户需求、删除用户需求、激活用户需求、变更用户需求、关闭用户需求";
|
|
1915
|
+
readonly actions: readonly [{
|
|
1916
|
+
readonly name: "list";
|
|
1917
|
+
readonly display: "获取用户需求列表,支持获取产品下的用户需求";
|
|
1918
|
+
readonly type: "list";
|
|
1919
|
+
readonly method: "get";
|
|
1920
|
+
readonly path: "/{scope}/{scopeID}/requirements";
|
|
1921
|
+
readonly resultType: "list";
|
|
1922
|
+
readonly pagerGetter: "pager";
|
|
1923
|
+
readonly resultGetter: "requirements";
|
|
1924
|
+
readonly pathParams: {
|
|
1925
|
+
readonly scope: {
|
|
1926
|
+
readonly description: "用户需求范围";
|
|
1927
|
+
readonly options: readonly [{
|
|
1928
|
+
readonly value: "products";
|
|
1929
|
+
readonly label: "产品";
|
|
1930
|
+
}];
|
|
1931
|
+
};
|
|
1932
|
+
readonly scopeID: "范围ID";
|
|
1933
|
+
};
|
|
1934
|
+
readonly params: readonly [{
|
|
1935
|
+
readonly name: "browseType";
|
|
1936
|
+
readonly required: false;
|
|
1937
|
+
readonly type: "string";
|
|
1938
|
+
readonly description: "状态,默认是unclosed";
|
|
1939
|
+
readonly defaultValue: "unclosed";
|
|
1940
|
+
readonly options: readonly [{
|
|
1941
|
+
readonly value: "allstory";
|
|
1942
|
+
readonly label: "全部";
|
|
1943
|
+
}, {
|
|
1944
|
+
readonly value: "assignedtome";
|
|
1945
|
+
readonly label: "指派给我";
|
|
1946
|
+
}, {
|
|
1947
|
+
readonly value: "openedbyme";
|
|
1948
|
+
readonly label: "我创建";
|
|
1949
|
+
}, {
|
|
1950
|
+
readonly value: "reviewbyme";
|
|
1951
|
+
readonly label: "待我评审";
|
|
1952
|
+
}, {
|
|
1953
|
+
readonly value: "draftstory";
|
|
1954
|
+
readonly label: "草稿";
|
|
1955
|
+
}];
|
|
1956
|
+
}, {
|
|
1957
|
+
readonly name: "orderBy";
|
|
1958
|
+
readonly required: false;
|
|
1959
|
+
readonly type: "string";
|
|
1960
|
+
readonly description: "排序";
|
|
1961
|
+
readonly options: readonly [{
|
|
1962
|
+
readonly value: "id_asc";
|
|
1963
|
+
readonly label: "ID 升序";
|
|
1964
|
+
}, {
|
|
1965
|
+
readonly value: "id_desc";
|
|
1966
|
+
readonly label: "ID 降序";
|
|
1967
|
+
}, {
|
|
1968
|
+
readonly value: "title_asc";
|
|
1969
|
+
readonly label: "标题 升序";
|
|
1970
|
+
}, {
|
|
1971
|
+
readonly value: "title_desc";
|
|
1972
|
+
readonly label: "标题 降序";
|
|
1973
|
+
}, {
|
|
1974
|
+
readonly value: "status_asc";
|
|
1975
|
+
readonly label: "状态 升序";
|
|
1976
|
+
}, {
|
|
1977
|
+
readonly value: "status_desc";
|
|
1978
|
+
readonly label: "状态 降序";
|
|
1979
|
+
}];
|
|
1980
|
+
}, {
|
|
1981
|
+
readonly name: "recPerPage";
|
|
1982
|
+
readonly required: false;
|
|
1983
|
+
readonly type: "number";
|
|
1984
|
+
readonly description: "每页数量,不超过1000";
|
|
1985
|
+
}, {
|
|
1986
|
+
readonly name: "pageID";
|
|
1987
|
+
readonly required: false;
|
|
1988
|
+
readonly type: "number";
|
|
1989
|
+
readonly description: "页码,从第1页开始";
|
|
1990
|
+
}];
|
|
1991
|
+
}, {
|
|
1992
|
+
readonly name: "create";
|
|
1993
|
+
readonly display: "创建用户需求";
|
|
1994
|
+
readonly type: "create";
|
|
1995
|
+
readonly method: "post";
|
|
1996
|
+
readonly path: "/requirements";
|
|
1997
|
+
readonly resultType: "object";
|
|
1998
|
+
readonly requestBody: {
|
|
1999
|
+
readonly required: true;
|
|
2000
|
+
readonly type: "object";
|
|
2001
|
+
readonly schema: {
|
|
2002
|
+
readonly type: "object";
|
|
2003
|
+
readonly properties: {
|
|
2004
|
+
readonly productID: {
|
|
2005
|
+
readonly type: "integer";
|
|
2006
|
+
readonly description: "产品ID";
|
|
2007
|
+
readonly format: "int32";
|
|
2008
|
+
};
|
|
2009
|
+
readonly title: {
|
|
2010
|
+
readonly type: "string";
|
|
2011
|
+
};
|
|
2012
|
+
readonly pri: {
|
|
2013
|
+
readonly type: "integer";
|
|
2014
|
+
readonly description: "优先级,默认是3";
|
|
2015
|
+
readonly format: "int32";
|
|
2016
|
+
};
|
|
2017
|
+
readonly module: {
|
|
2018
|
+
readonly type: "integer";
|
|
2019
|
+
readonly description: "所属模块";
|
|
2020
|
+
readonly format: "int32";
|
|
2021
|
+
};
|
|
2022
|
+
readonly parent: {
|
|
2023
|
+
readonly type: "integer";
|
|
2024
|
+
readonly description: "父用户需求";
|
|
2025
|
+
readonly format: "int32";
|
|
2026
|
+
};
|
|
2027
|
+
readonly estimate: {
|
|
2028
|
+
readonly type: "number";
|
|
2029
|
+
readonly description: "预计工时";
|
|
2030
|
+
readonly format: "float";
|
|
2031
|
+
};
|
|
2032
|
+
readonly spec: {
|
|
2033
|
+
readonly type: "string";
|
|
2034
|
+
readonly description: "用户需求描述";
|
|
2035
|
+
};
|
|
2036
|
+
readonly category: {
|
|
2037
|
+
readonly type: "integer";
|
|
2038
|
+
readonly description: "类别(feature 功能 | interface 接口 | performance 性能 | safe 安全 | experience 体验 | improve 改进 | other 其他)";
|
|
2039
|
+
readonly format: "int32";
|
|
2040
|
+
};
|
|
2041
|
+
readonly source: {
|
|
2042
|
+
readonly type: "string";
|
|
2043
|
+
readonly description: "来源(customer 客户 | user 用户 | po 产品经理 | market 市场 | service 客服 | operation 运营 | support 技术支持 | competitor 竞争对手 | partner 合作伙伴 | dev 开发人员 | tester 测试人员 | bug Bug | forum 论坛 | other 其他)";
|
|
2044
|
+
};
|
|
2045
|
+
readonly verify: {
|
|
2046
|
+
readonly type: "string";
|
|
2047
|
+
readonly description: "验收标准";
|
|
2048
|
+
};
|
|
2049
|
+
readonly assignedTo: {
|
|
2050
|
+
readonly type: "string";
|
|
2051
|
+
readonly description: "指派给";
|
|
2052
|
+
};
|
|
2053
|
+
readonly reviewer: {
|
|
2054
|
+
readonly type: "array";
|
|
2055
|
+
readonly items: {
|
|
2056
|
+
readonly type: "string";
|
|
2057
|
+
};
|
|
2058
|
+
readonly description: "评审人,如果设置必须评审,必须填写";
|
|
2059
|
+
};
|
|
2060
|
+
};
|
|
2061
|
+
readonly required: readonly ["productID", "title"];
|
|
2062
|
+
};
|
|
2063
|
+
};
|
|
2064
|
+
}, {
|
|
2065
|
+
readonly name: "get";
|
|
2066
|
+
readonly display: "获取用户需求详情";
|
|
2067
|
+
readonly type: "get";
|
|
2068
|
+
readonly method: "get";
|
|
2069
|
+
readonly path: "/requirements/{storyID}";
|
|
2070
|
+
readonly resultType: "object";
|
|
2071
|
+
readonly resultGetter: "requirement";
|
|
2072
|
+
readonly pathParams: {
|
|
2073
|
+
readonly storyID: "需求ID";
|
|
2074
|
+
};
|
|
2075
|
+
}, {
|
|
2076
|
+
readonly name: "update";
|
|
2077
|
+
readonly display: "修改用户需求";
|
|
2078
|
+
readonly type: "update";
|
|
2079
|
+
readonly method: "put";
|
|
2080
|
+
readonly path: "/requirements/{requirementID}";
|
|
2081
|
+
readonly resultType: "object";
|
|
2082
|
+
readonly pathParams: {
|
|
2083
|
+
readonly requirementID: "用户需求ID";
|
|
2084
|
+
};
|
|
2085
|
+
readonly requestBody: {
|
|
2086
|
+
readonly required: true;
|
|
2087
|
+
readonly type: "object";
|
|
2088
|
+
readonly schema: {
|
|
2089
|
+
readonly type: "object";
|
|
2090
|
+
readonly properties: {
|
|
2091
|
+
readonly title: {
|
|
2092
|
+
readonly type: "string";
|
|
2093
|
+
};
|
|
2094
|
+
readonly pri: {
|
|
2095
|
+
readonly type: "integer";
|
|
2096
|
+
readonly description: "优先级,默认是3";
|
|
2097
|
+
readonly format: "int32";
|
|
2098
|
+
};
|
|
2099
|
+
readonly module: {
|
|
2100
|
+
readonly type: "integer";
|
|
2101
|
+
readonly description: "所属模块";
|
|
2102
|
+
readonly format: "int32";
|
|
2103
|
+
};
|
|
2104
|
+
readonly parent: {
|
|
2105
|
+
readonly type: "integer";
|
|
2106
|
+
readonly description: "父用户需求";
|
|
2107
|
+
readonly format: "int32";
|
|
2108
|
+
};
|
|
2109
|
+
readonly estimate: {
|
|
2110
|
+
readonly type: "number";
|
|
2111
|
+
readonly description: "预计工时";
|
|
2112
|
+
readonly format: "float";
|
|
2113
|
+
};
|
|
2114
|
+
readonly category: {
|
|
2115
|
+
readonly type: "integer";
|
|
2116
|
+
readonly description: "类别(feature 功能 | interface 接口 | performance 性能 | safe 安全 | experience 体验 | improve 改进 | other 其他)";
|
|
2117
|
+
readonly format: "int32";
|
|
2118
|
+
};
|
|
2119
|
+
readonly source: {
|
|
2120
|
+
readonly type: "string";
|
|
2121
|
+
readonly description: "来源(customer 客户 | user 用户 | po 产品经理 | market 市场 | service 客服 | operation 运营 | support 技术支持 | competitor 竞争对手 | partner 合作伙伴 | dev 开发人员 | tester 测试人员 | bug Bug | forum 论坛 | other 其他)";
|
|
2122
|
+
};
|
|
2123
|
+
readonly assignedTo: {
|
|
2124
|
+
readonly type: "string";
|
|
2125
|
+
readonly description: "指派给";
|
|
2126
|
+
};
|
|
2127
|
+
};
|
|
2128
|
+
readonly required: readonly ["title"];
|
|
2129
|
+
};
|
|
2130
|
+
};
|
|
2131
|
+
}, {
|
|
2132
|
+
readonly name: "delete";
|
|
2133
|
+
readonly display: "删除用户需求";
|
|
2134
|
+
readonly type: "delete";
|
|
2135
|
+
readonly method: "delete";
|
|
2136
|
+
readonly path: "/requirements/{requirementID}";
|
|
2137
|
+
readonly resultType: "text";
|
|
2138
|
+
readonly pathParams: {
|
|
2139
|
+
readonly requirementID: "用户需求ID";
|
|
2140
|
+
};
|
|
2141
|
+
readonly render: "action";
|
|
2142
|
+
}, {
|
|
2143
|
+
readonly name: "activate";
|
|
2144
|
+
readonly display: "激活用户需求";
|
|
2145
|
+
readonly type: "action";
|
|
2146
|
+
readonly method: "put";
|
|
2147
|
+
readonly path: "/requirements/{requirementID}/activate";
|
|
2148
|
+
readonly resultType: "text";
|
|
2149
|
+
readonly pathParams: {
|
|
2150
|
+
readonly requirementID: "用户需求ID";
|
|
2151
|
+
};
|
|
2152
|
+
readonly requestBody: {
|
|
2153
|
+
readonly required: true;
|
|
2154
|
+
readonly type: "object";
|
|
2155
|
+
readonly schema: {
|
|
2156
|
+
readonly type: "object";
|
|
2157
|
+
readonly properties: {
|
|
2158
|
+
readonly assignedTo: {
|
|
2159
|
+
readonly type: "string";
|
|
2160
|
+
readonly description: "指派给";
|
|
2161
|
+
};
|
|
2162
|
+
readonly comment: {
|
|
2163
|
+
readonly type: "string";
|
|
2164
|
+
readonly description: "备注";
|
|
2165
|
+
};
|
|
2166
|
+
};
|
|
2167
|
+
};
|
|
2168
|
+
};
|
|
2169
|
+
readonly render: "action";
|
|
2170
|
+
}, {
|
|
2171
|
+
readonly name: "change";
|
|
2172
|
+
readonly display: "变更用户需求";
|
|
2173
|
+
readonly type: "action";
|
|
2174
|
+
readonly method: "put";
|
|
2175
|
+
readonly path: "/requirements/{requirementID}/change";
|
|
2176
|
+
readonly resultType: "text";
|
|
2177
|
+
readonly pathParams: {
|
|
2178
|
+
readonly requirementID: "用户需求ID";
|
|
2179
|
+
};
|
|
2180
|
+
readonly requestBody: {
|
|
2181
|
+
readonly required: true;
|
|
2182
|
+
readonly type: "object";
|
|
2183
|
+
readonly schema: {
|
|
2184
|
+
readonly type: "object";
|
|
2185
|
+
readonly properties: {
|
|
2186
|
+
readonly title: {
|
|
2187
|
+
readonly type: "string";
|
|
2188
|
+
readonly description: "需求名称";
|
|
2189
|
+
};
|
|
2190
|
+
readonly spec: {
|
|
2191
|
+
readonly type: "string";
|
|
2192
|
+
readonly description: "需求描述";
|
|
2193
|
+
};
|
|
2194
|
+
readonly verify: {
|
|
2195
|
+
readonly type: "string";
|
|
2196
|
+
readonly description: "验收标准";
|
|
2197
|
+
};
|
|
2198
|
+
};
|
|
2199
|
+
};
|
|
2200
|
+
};
|
|
2201
|
+
readonly render: "action";
|
|
2202
|
+
}, {
|
|
2203
|
+
readonly name: "close";
|
|
2204
|
+
readonly display: "关闭用户需求";
|
|
2205
|
+
readonly type: "action";
|
|
2206
|
+
readonly method: "put";
|
|
2207
|
+
readonly path: "/requirements/{requirementID}/close";
|
|
2208
|
+
readonly resultType: "text";
|
|
2209
|
+
readonly pathParams: {
|
|
2210
|
+
readonly requirementID: "用户需求ID";
|
|
2211
|
+
};
|
|
2212
|
+
readonly requestBody: {
|
|
2213
|
+
readonly required: true;
|
|
2214
|
+
readonly type: "object";
|
|
2215
|
+
readonly schema: {
|
|
2216
|
+
readonly type: "object";
|
|
2217
|
+
readonly properties: {
|
|
2218
|
+
readonly closedReason: {
|
|
2219
|
+
readonly type: "string";
|
|
2220
|
+
readonly description: "关闭原因(done 已完成 | subdivided 已拆分 | duplicate 重复 | postponed 延期 | willnotdo 不做 | cancel 已取消 | bydesign 设计如此)";
|
|
2221
|
+
};
|
|
2222
|
+
readonly comment: {
|
|
2223
|
+
readonly type: "string";
|
|
2224
|
+
readonly description: "备注";
|
|
2225
|
+
};
|
|
2226
|
+
};
|
|
2227
|
+
readonly required: readonly ["closedReason"];
|
|
2228
|
+
};
|
|
2229
|
+
};
|
|
2230
|
+
readonly render: "action";
|
|
2231
|
+
}];
|
|
2232
|
+
}, {
|
|
2233
|
+
readonly name: "bug";
|
|
2234
|
+
readonly display: "Bug";
|
|
2235
|
+
readonly description: "Bug管理,支持获取Bug列表,支持获取产品/项目/执行下的Bug、创建Bug、获取Bug详情、修改Bug、删除Bug、激活Bug、关闭Bug、解决Bug";
|
|
2236
|
+
readonly actions: readonly [{
|
|
2237
|
+
readonly name: "list";
|
|
2238
|
+
readonly display: "获取Bug列表,支持获取产品/项目/执行下的Bug";
|
|
2239
|
+
readonly type: "list";
|
|
2240
|
+
readonly method: "get";
|
|
2241
|
+
readonly path: "/{scope}/{scopeID}/bugs";
|
|
2242
|
+
readonly resultType: "list";
|
|
2243
|
+
readonly pagerGetter: "pager";
|
|
2244
|
+
readonly resultGetter: "bugs";
|
|
2245
|
+
readonly pathParams: {
|
|
2246
|
+
readonly scope: {
|
|
2247
|
+
readonly description: "Bug范围";
|
|
2248
|
+
readonly options: readonly [{
|
|
2249
|
+
readonly value: "products";
|
|
2250
|
+
readonly label: "产品";
|
|
2251
|
+
}, {
|
|
2252
|
+
readonly value: "projects";
|
|
2253
|
+
readonly label: "项目";
|
|
2254
|
+
}, {
|
|
2255
|
+
readonly value: "executions";
|
|
2256
|
+
readonly label: "执行";
|
|
2257
|
+
}];
|
|
2258
|
+
};
|
|
2259
|
+
readonly scopeID: "范围ID";
|
|
2260
|
+
};
|
|
2261
|
+
readonly params: readonly [{
|
|
2262
|
+
readonly name: "browseType";
|
|
2263
|
+
readonly required: false;
|
|
2264
|
+
readonly type: "string";
|
|
2265
|
+
readonly description: "状态,默认是unclosed";
|
|
2266
|
+
readonly defaultValue: "unclosed";
|
|
2267
|
+
readonly options: readonly [{
|
|
2268
|
+
readonly value: "all";
|
|
2269
|
+
readonly label: "全部";
|
|
2270
|
+
}, {
|
|
2271
|
+
readonly value: "unclosed";
|
|
2272
|
+
readonly label: "未关闭";
|
|
2273
|
+
}, {
|
|
2274
|
+
readonly value: "assignedtome";
|
|
2275
|
+
readonly label: "指派给我";
|
|
2276
|
+
}, {
|
|
2277
|
+
readonly value: "openedbyme";
|
|
2278
|
+
readonly label: "我创建";
|
|
2279
|
+
}, {
|
|
2280
|
+
readonly value: "assignedbyme";
|
|
2281
|
+
readonly label: "由我指派";
|
|
2282
|
+
}];
|
|
2283
|
+
}, {
|
|
2284
|
+
readonly name: "orderBy";
|
|
2285
|
+
readonly required: false;
|
|
2286
|
+
readonly type: "string";
|
|
2287
|
+
readonly description: "排序";
|
|
2288
|
+
readonly options: readonly [{
|
|
2289
|
+
readonly value: "id_asc";
|
|
2290
|
+
readonly label: "ID 升序";
|
|
2291
|
+
}, {
|
|
2292
|
+
readonly value: "id_desc";
|
|
2293
|
+
readonly label: "ID 降序";
|
|
2294
|
+
}, {
|
|
2295
|
+
readonly value: "title_asc";
|
|
2296
|
+
readonly label: "标题 升序";
|
|
2297
|
+
}, {
|
|
2298
|
+
readonly value: "title_desc";
|
|
2299
|
+
readonly label: "标题 降序";
|
|
2300
|
+
}, {
|
|
2301
|
+
readonly value: "status_asc";
|
|
2302
|
+
readonly label: "状态 升序";
|
|
2303
|
+
}, {
|
|
2304
|
+
readonly value: "status_desc";
|
|
2305
|
+
readonly label: "状态 降序";
|
|
2306
|
+
}];
|
|
2307
|
+
}, {
|
|
2308
|
+
readonly name: "recPerPage";
|
|
2309
|
+
readonly required: false;
|
|
2310
|
+
readonly type: "number";
|
|
2311
|
+
readonly description: "每页数量,不超过1000";
|
|
2312
|
+
}, {
|
|
2313
|
+
readonly name: "pageID";
|
|
2314
|
+
readonly required: false;
|
|
2315
|
+
readonly type: "number";
|
|
2316
|
+
readonly description: "页码,从第1页开始";
|
|
2317
|
+
}];
|
|
2318
|
+
}, {
|
|
2319
|
+
readonly name: "create";
|
|
2320
|
+
readonly display: "创建Bug";
|
|
2321
|
+
readonly type: "create";
|
|
2322
|
+
readonly method: "post";
|
|
2323
|
+
readonly path: "/bugs";
|
|
2324
|
+
readonly resultType: "object";
|
|
2325
|
+
readonly requestBody: {
|
|
2326
|
+
readonly required: true;
|
|
2327
|
+
readonly type: "object";
|
|
2328
|
+
readonly schema: {
|
|
2329
|
+
readonly type: "object";
|
|
2330
|
+
readonly properties: {
|
|
2331
|
+
readonly productID: {
|
|
2332
|
+
readonly type: "integer";
|
|
2333
|
+
readonly description: "所属产品";
|
|
2334
|
+
readonly format: "int32";
|
|
2335
|
+
};
|
|
2336
|
+
readonly title: {
|
|
2337
|
+
readonly type: "string";
|
|
2338
|
+
readonly description: "Bug标题";
|
|
2339
|
+
};
|
|
2340
|
+
readonly openedBuild: {
|
|
2341
|
+
readonly type: "array";
|
|
2342
|
+
readonly items: {
|
|
2343
|
+
readonly type: "string";
|
|
2344
|
+
};
|
|
2345
|
+
readonly description: "影响版本,主干是trunk,其他版本使用版本ID";
|
|
2346
|
+
};
|
|
2347
|
+
readonly project: {
|
|
2348
|
+
readonly type: "integer";
|
|
2349
|
+
readonly description: "所属项目";
|
|
2350
|
+
readonly format: "int32";
|
|
2351
|
+
};
|
|
2352
|
+
readonly execution: {
|
|
2353
|
+
readonly type: "integer";
|
|
2354
|
+
readonly description: "所属执行";
|
|
2355
|
+
readonly format: "int32";
|
|
2356
|
+
};
|
|
2357
|
+
readonly severity: {
|
|
2358
|
+
readonly type: "integer";
|
|
2359
|
+
readonly description: "严重程度,默认是3";
|
|
2360
|
+
readonly format: "int32";
|
|
2361
|
+
};
|
|
2362
|
+
readonly pri: {
|
|
2363
|
+
readonly type: "integer";
|
|
2364
|
+
readonly description: "优先级,默认是3";
|
|
2365
|
+
readonly format: "int32";
|
|
2366
|
+
};
|
|
2367
|
+
readonly type: {
|
|
2368
|
+
readonly type: "string";
|
|
2369
|
+
readonly description: "Bug类型(codeerror 代码错误 | config 配置相关 | install 安装部署 | security 安全相关 | performance 性能问题 | standard 标准规范 | automation 测试脚本 | designdefect 设计缺陷 | others 其他)";
|
|
2370
|
+
};
|
|
2371
|
+
readonly steps: {
|
|
2372
|
+
readonly type: "string";
|
|
2373
|
+
readonly description: "重现步骤";
|
|
2374
|
+
};
|
|
2375
|
+
readonly story: {
|
|
2376
|
+
readonly type: "integer";
|
|
2377
|
+
readonly description: "相关需求";
|
|
2378
|
+
readonly format: "int32";
|
|
2379
|
+
};
|
|
2380
|
+
};
|
|
2381
|
+
readonly required: readonly ["productID", "title", "openedBuild"];
|
|
2382
|
+
};
|
|
2383
|
+
};
|
|
2384
|
+
}, {
|
|
2385
|
+
readonly name: "get";
|
|
2386
|
+
readonly display: "获取Bug详情";
|
|
2387
|
+
readonly type: "get";
|
|
2388
|
+
readonly method: "get";
|
|
2389
|
+
readonly path: "/bugs/{bugID}";
|
|
2390
|
+
readonly resultType: "object";
|
|
2391
|
+
readonly resultGetter: "bug";
|
|
2392
|
+
readonly pathParams: {
|
|
2393
|
+
readonly bugID: "Bug ID";
|
|
2394
|
+
};
|
|
2395
|
+
}, {
|
|
2396
|
+
readonly name: "update";
|
|
2397
|
+
readonly display: "修改Bug";
|
|
2398
|
+
readonly type: "update";
|
|
2399
|
+
readonly method: "put";
|
|
2400
|
+
readonly path: "/bugs/{bugID}";
|
|
2401
|
+
readonly resultType: "object";
|
|
2402
|
+
readonly pathParams: {
|
|
2403
|
+
readonly bugID: "Bug ID";
|
|
2404
|
+
};
|
|
2405
|
+
readonly requestBody: {
|
|
2406
|
+
readonly required: true;
|
|
2407
|
+
readonly type: "object";
|
|
2408
|
+
readonly schema: {
|
|
2409
|
+
readonly type: "object";
|
|
2410
|
+
readonly properties: {
|
|
2411
|
+
readonly title: {
|
|
2412
|
+
readonly type: "string";
|
|
2413
|
+
readonly description: "Bug标题";
|
|
2414
|
+
};
|
|
2415
|
+
readonly severity: {
|
|
2416
|
+
readonly type: "integer";
|
|
2417
|
+
readonly description: "严重程度,默认是3";
|
|
2418
|
+
readonly format: "int32";
|
|
2419
|
+
};
|
|
2420
|
+
readonly pri: {
|
|
2421
|
+
readonly type: "integer";
|
|
2422
|
+
readonly description: "优先级,默认是3";
|
|
2423
|
+
readonly format: "int32";
|
|
2424
|
+
};
|
|
2425
|
+
readonly type: {
|
|
2426
|
+
readonly type: "string";
|
|
2427
|
+
readonly description: "Bug类型(codeerror 代码错误 | config 配置相关 | install 安装部署 | security 安全相关 | performance 性能问题 | standard 标准规范 | automation 测试脚本 | designdefect 设计缺陷 | others 其他)";
|
|
2428
|
+
};
|
|
2429
|
+
readonly openedBuild: {
|
|
2430
|
+
readonly type: "array";
|
|
2431
|
+
readonly items: {
|
|
2432
|
+
readonly type: "string";
|
|
2433
|
+
};
|
|
2434
|
+
readonly description: "影响版本,主干是trunk,其他版本使用版本ID";
|
|
2435
|
+
};
|
|
2436
|
+
readonly steps: {
|
|
2437
|
+
readonly type: "string";
|
|
2438
|
+
readonly description: "重现步骤";
|
|
2439
|
+
};
|
|
2440
|
+
readonly project: {
|
|
2441
|
+
readonly type: "integer";
|
|
2442
|
+
readonly description: "所属项目";
|
|
2443
|
+
readonly format: "int32";
|
|
2444
|
+
};
|
|
2445
|
+
readonly execution: {
|
|
2446
|
+
readonly type: "integer";
|
|
2447
|
+
readonly description: "所属执行";
|
|
2448
|
+
readonly format: "int32";
|
|
2449
|
+
};
|
|
2450
|
+
readonly story: {
|
|
2451
|
+
readonly type: "integer";
|
|
2452
|
+
readonly description: "相关需求";
|
|
2453
|
+
readonly format: "int32";
|
|
2454
|
+
};
|
|
2455
|
+
};
|
|
2456
|
+
};
|
|
2457
|
+
};
|
|
2458
|
+
}, {
|
|
2459
|
+
readonly name: "delete";
|
|
2460
|
+
readonly display: "删除Bug";
|
|
2461
|
+
readonly type: "delete";
|
|
2462
|
+
readonly method: "delete";
|
|
2463
|
+
readonly path: "/bugs/{bugID}";
|
|
2464
|
+
readonly resultType: "text";
|
|
2465
|
+
readonly pathParams: {
|
|
2466
|
+
readonly bugID: "Bug ID";
|
|
2467
|
+
};
|
|
2468
|
+
readonly render: "action";
|
|
2469
|
+
}, {
|
|
2470
|
+
readonly name: "activate";
|
|
2471
|
+
readonly display: "激活Bug";
|
|
2472
|
+
readonly type: "action";
|
|
2473
|
+
readonly method: "put";
|
|
2474
|
+
readonly path: "/bugs/{bugID}/activate";
|
|
2475
|
+
readonly resultType: "text";
|
|
2476
|
+
readonly pathParams: {
|
|
2477
|
+
readonly bugID: "Bug ID";
|
|
2478
|
+
};
|
|
2479
|
+
readonly requestBody: {
|
|
2480
|
+
readonly required: true;
|
|
2481
|
+
readonly type: "object";
|
|
2482
|
+
readonly schema: {
|
|
2483
|
+
readonly type: "object";
|
|
2484
|
+
readonly properties: {
|
|
2485
|
+
readonly openedBuild: {
|
|
2486
|
+
readonly type: "array";
|
|
2487
|
+
readonly items: {
|
|
2488
|
+
readonly type: "string";
|
|
2489
|
+
};
|
|
2490
|
+
readonly description: "影响版本, trunk为主干";
|
|
2491
|
+
};
|
|
2492
|
+
readonly assignedTo: {
|
|
2493
|
+
readonly type: "string";
|
|
2494
|
+
readonly description: "指派给";
|
|
2495
|
+
};
|
|
2496
|
+
readonly comment: {
|
|
2497
|
+
readonly type: "string";
|
|
2498
|
+
readonly description: "备注";
|
|
2499
|
+
};
|
|
2500
|
+
};
|
|
2501
|
+
};
|
|
2502
|
+
};
|
|
2503
|
+
readonly render: "action";
|
|
2504
|
+
}, {
|
|
2505
|
+
readonly name: "close";
|
|
2506
|
+
readonly display: "关闭Bug";
|
|
2507
|
+
readonly type: "action";
|
|
2508
|
+
readonly method: "put";
|
|
2509
|
+
readonly path: "/bugs/{bugID}/close";
|
|
2510
|
+
readonly resultType: "text";
|
|
2511
|
+
readonly pathParams: {
|
|
2512
|
+
readonly bugID: "Bug ID";
|
|
2513
|
+
};
|
|
2514
|
+
readonly requestBody: {
|
|
2515
|
+
readonly required: true;
|
|
2516
|
+
readonly type: "object";
|
|
2517
|
+
readonly schema: {
|
|
2518
|
+
readonly type: "object";
|
|
2519
|
+
readonly properties: {
|
|
2520
|
+
readonly comment: {
|
|
2521
|
+
readonly type: "string";
|
|
2522
|
+
readonly description: "备注";
|
|
2523
|
+
};
|
|
2524
|
+
};
|
|
2525
|
+
};
|
|
2526
|
+
};
|
|
2527
|
+
readonly render: "action";
|
|
2528
|
+
}, {
|
|
2529
|
+
readonly name: "resolve";
|
|
2530
|
+
readonly display: "解决Bug";
|
|
2531
|
+
readonly type: "action";
|
|
2532
|
+
readonly method: "put";
|
|
2533
|
+
readonly path: "/bugs/{bugID}/resolve";
|
|
2534
|
+
readonly resultType: "text";
|
|
2535
|
+
readonly pathParams: {
|
|
2536
|
+
readonly bugID: "Bug ID";
|
|
2537
|
+
};
|
|
2538
|
+
readonly requestBody: {
|
|
2539
|
+
readonly required: true;
|
|
2540
|
+
readonly type: "object";
|
|
2541
|
+
readonly schema: {
|
|
2542
|
+
readonly type: "object";
|
|
2543
|
+
readonly properties: {
|
|
2544
|
+
readonly resolution: {
|
|
2545
|
+
readonly type: "string";
|
|
2546
|
+
readonly description: "fixed 已解决 | notrepro 无法重现 | bydesign 设计如此 | duplicate 重复Bug | external 外部原因| postponed 延期处理 | willnotfix 不予解决 | tostory 转为需求";
|
|
2547
|
+
};
|
|
2548
|
+
readonly resolvedDate: {
|
|
2549
|
+
readonly type: "string";
|
|
2550
|
+
readonly description: "解决日期,默认今天";
|
|
2551
|
+
};
|
|
2552
|
+
readonly resolvedBuild: {
|
|
2553
|
+
readonly type: "string";
|
|
2554
|
+
readonly description: "解决版本, trunk为主干";
|
|
2555
|
+
};
|
|
2556
|
+
readonly assignedTo: {
|
|
2557
|
+
readonly type: "string";
|
|
2558
|
+
readonly description: "指派给";
|
|
2559
|
+
};
|
|
2560
|
+
readonly comment: {
|
|
2561
|
+
readonly type: "string";
|
|
2562
|
+
readonly description: "备注";
|
|
2563
|
+
};
|
|
2564
|
+
};
|
|
2565
|
+
readonly required: readonly ["resolution"];
|
|
2566
|
+
};
|
|
2567
|
+
};
|
|
2568
|
+
readonly render: "action";
|
|
2569
|
+
}];
|
|
2570
|
+
}, {
|
|
2571
|
+
readonly name: "testcase";
|
|
2572
|
+
readonly display: "测试用例";
|
|
2573
|
+
readonly description: "测试用例管理,支持获取测试用例列表,支持获取产品/项目/执行下的测试用例、创建测试用例、获取测试用例详情、修改测试用例、删除测试用例";
|
|
2574
|
+
readonly actions: readonly [{
|
|
2575
|
+
readonly name: "list";
|
|
2576
|
+
readonly display: "获取测试用例列表,支持获取产品/项目/执行下的测试用例";
|
|
2577
|
+
readonly type: "list";
|
|
2578
|
+
readonly method: "get";
|
|
2579
|
+
readonly path: "/{scope}/{scopeID}/testcases";
|
|
2580
|
+
readonly resultType: "list";
|
|
2581
|
+
readonly pagerGetter: "pager";
|
|
2582
|
+
readonly resultGetter: "testcases";
|
|
2583
|
+
readonly pathParams: {
|
|
2584
|
+
readonly scope: {
|
|
2585
|
+
readonly description: "测试用例范围";
|
|
2586
|
+
readonly options: readonly [{
|
|
2587
|
+
readonly value: "products";
|
|
2588
|
+
readonly label: "产品";
|
|
2589
|
+
}, {
|
|
2590
|
+
readonly value: "projects";
|
|
2591
|
+
readonly label: "项目";
|
|
2592
|
+
}, {
|
|
2593
|
+
readonly value: "executions";
|
|
2594
|
+
readonly label: "执行";
|
|
2595
|
+
}];
|
|
2596
|
+
};
|
|
2597
|
+
readonly scopeID: "范围ID";
|
|
2598
|
+
};
|
|
2599
|
+
readonly params: readonly [{
|
|
2600
|
+
readonly name: "browseType";
|
|
2601
|
+
readonly required: false;
|
|
2602
|
+
readonly type: "string";
|
|
2603
|
+
readonly description: "状态,默认是all";
|
|
2604
|
+
readonly defaultValue: "all";
|
|
2605
|
+
readonly options: readonly [{
|
|
2606
|
+
readonly value: "all";
|
|
2607
|
+
readonly label: "全部";
|
|
2608
|
+
}, {
|
|
2609
|
+
readonly value: "wait";
|
|
2610
|
+
readonly label: "未关闭";
|
|
2611
|
+
}, {
|
|
2612
|
+
readonly value: "needconfirm";
|
|
2613
|
+
readonly label: "需求变动";
|
|
2614
|
+
}];
|
|
2615
|
+
}, {
|
|
2616
|
+
readonly name: "orderBy";
|
|
2617
|
+
readonly required: false;
|
|
2618
|
+
readonly type: "string";
|
|
2619
|
+
readonly description: "排序";
|
|
2620
|
+
readonly options: readonly [{
|
|
2621
|
+
readonly value: "id_asc";
|
|
2622
|
+
readonly label: "ID 升序";
|
|
2623
|
+
}, {
|
|
2624
|
+
readonly value: "id_desc";
|
|
2625
|
+
readonly label: "ID 降序";
|
|
2626
|
+
}, {
|
|
2627
|
+
readonly value: "title_asc";
|
|
2628
|
+
readonly label: "标题 升序";
|
|
2629
|
+
}, {
|
|
2630
|
+
readonly value: "title_desc";
|
|
2631
|
+
readonly label: "标题 降序";
|
|
2632
|
+
}, {
|
|
2633
|
+
readonly value: "status_asc";
|
|
2634
|
+
readonly label: "状态 升序";
|
|
2635
|
+
}, {
|
|
2636
|
+
readonly value: "status_desc";
|
|
2637
|
+
readonly label: "状态 降序";
|
|
2638
|
+
}];
|
|
2639
|
+
}, {
|
|
2640
|
+
readonly name: "recPerPage";
|
|
2641
|
+
readonly required: false;
|
|
2642
|
+
readonly type: "number";
|
|
2643
|
+
readonly description: "每页数量,不超过1000";
|
|
2644
|
+
}, {
|
|
2645
|
+
readonly name: "pageID";
|
|
2646
|
+
readonly required: false;
|
|
2647
|
+
readonly type: "number";
|
|
2648
|
+
readonly description: "页码,从第1页开始";
|
|
2649
|
+
}];
|
|
2650
|
+
}, {
|
|
2651
|
+
readonly name: "create";
|
|
2652
|
+
readonly display: "创建测试用例";
|
|
2653
|
+
readonly type: "create";
|
|
2654
|
+
readonly method: "post";
|
|
2655
|
+
readonly path: "/testcases";
|
|
2656
|
+
readonly resultType: "object";
|
|
2657
|
+
readonly requestBody: {
|
|
2658
|
+
readonly required: true;
|
|
2659
|
+
readonly type: "object";
|
|
2660
|
+
readonly schema: {
|
|
2661
|
+
readonly type: "object";
|
|
2662
|
+
readonly properties: {
|
|
2663
|
+
readonly productID: {
|
|
2664
|
+
readonly type: "integer";
|
|
2665
|
+
readonly description: "所属产品";
|
|
2666
|
+
readonly format: "int32";
|
|
2667
|
+
};
|
|
2668
|
+
readonly title: {
|
|
2669
|
+
readonly type: "string";
|
|
2670
|
+
readonly description: "用例标题";
|
|
2671
|
+
};
|
|
2672
|
+
readonly module: {
|
|
2673
|
+
readonly type: "integer";
|
|
2674
|
+
readonly description: "所属模块";
|
|
2675
|
+
readonly format: "int32";
|
|
2676
|
+
};
|
|
2677
|
+
readonly story: {
|
|
2678
|
+
readonly type: "integer";
|
|
2679
|
+
readonly description: "相关需求";
|
|
2680
|
+
readonly format: "int32";
|
|
2681
|
+
};
|
|
2682
|
+
readonly pri: {
|
|
2683
|
+
readonly type: "integer";
|
|
2684
|
+
readonly description: "优先级";
|
|
2685
|
+
readonly format: "int32";
|
|
2686
|
+
};
|
|
2687
|
+
readonly type: {
|
|
2688
|
+
readonly type: "string";
|
|
2689
|
+
readonly description: "用例类型(unit 单元测试 | interface 接口测试 | feature 功能测试 | install 安装部署 | config 配置相关 | performance 性能测试 | security 安全相关 | other 其他)";
|
|
2690
|
+
};
|
|
2691
|
+
readonly precondition: {
|
|
2692
|
+
readonly type: "string";
|
|
2693
|
+
readonly description: "前置条件";
|
|
2694
|
+
};
|
|
2695
|
+
readonly steps: {
|
|
2696
|
+
readonly type: "array";
|
|
2697
|
+
readonly items: {
|
|
2698
|
+
readonly type: "string";
|
|
2699
|
+
};
|
|
2700
|
+
readonly description: "用例步骤";
|
|
2701
|
+
};
|
|
2702
|
+
readonly expects: {
|
|
2703
|
+
readonly type: "array";
|
|
2704
|
+
readonly items: {
|
|
2705
|
+
readonly type: "string";
|
|
2706
|
+
};
|
|
2707
|
+
readonly description: "用例步骤期望";
|
|
2708
|
+
};
|
|
2709
|
+
readonly stepType: {
|
|
2710
|
+
readonly type: "array";
|
|
2711
|
+
readonly items: {
|
|
2712
|
+
readonly type: "string";
|
|
2713
|
+
};
|
|
2714
|
+
readonly description: "用例步骤类型(step 步骤 | group 父级步骤)";
|
|
2715
|
+
};
|
|
2716
|
+
readonly project: {
|
|
2717
|
+
readonly type: "integer";
|
|
2718
|
+
readonly description: "所属项目";
|
|
2719
|
+
readonly format: "int32";
|
|
2720
|
+
};
|
|
2721
|
+
readonly execution: {
|
|
2722
|
+
readonly type: "integer";
|
|
2723
|
+
readonly description: "所属执行";
|
|
2724
|
+
readonly format: "int32";
|
|
2725
|
+
};
|
|
2726
|
+
};
|
|
2727
|
+
readonly required: readonly ["productID", "title"];
|
|
2728
|
+
};
|
|
2729
|
+
};
|
|
2730
|
+
}, {
|
|
2731
|
+
readonly name: "get";
|
|
2732
|
+
readonly display: "获取测试用例详情";
|
|
2733
|
+
readonly type: "get";
|
|
2734
|
+
readonly method: "get";
|
|
2735
|
+
readonly path: "/testcases/{caseID}";
|
|
2736
|
+
readonly resultType: "object";
|
|
2737
|
+
readonly resultGetter: "testcase";
|
|
2738
|
+
readonly pathParams: {
|
|
2739
|
+
readonly caseID: "测试用例ID";
|
|
2740
|
+
};
|
|
2741
|
+
}, {
|
|
2742
|
+
readonly name: "update";
|
|
2743
|
+
readonly display: "修改测试用例";
|
|
2744
|
+
readonly type: "update";
|
|
2745
|
+
readonly method: "put";
|
|
2746
|
+
readonly path: "/testcases/{testcasID}";
|
|
2747
|
+
readonly resultType: "object";
|
|
2748
|
+
readonly pathParams: {
|
|
2749
|
+
readonly testcasID: "测试用例ID";
|
|
2750
|
+
};
|
|
2751
|
+
readonly requestBody: {
|
|
2752
|
+
readonly required: true;
|
|
2753
|
+
readonly type: "object";
|
|
2754
|
+
readonly schema: {
|
|
2755
|
+
readonly type: "object";
|
|
2756
|
+
readonly properties: {
|
|
2757
|
+
readonly title: {
|
|
2758
|
+
readonly type: "string";
|
|
2759
|
+
readonly description: "用例标题";
|
|
2760
|
+
};
|
|
2761
|
+
readonly moudule: {
|
|
2762
|
+
readonly type: "integer";
|
|
2763
|
+
readonly description: "所属模块";
|
|
2764
|
+
readonly format: "int32";
|
|
2765
|
+
};
|
|
2766
|
+
readonly story: {
|
|
2767
|
+
readonly type: "integer";
|
|
2768
|
+
readonly description: "相关需求";
|
|
2769
|
+
readonly format: "int32";
|
|
2770
|
+
};
|
|
2771
|
+
readonly pri: {
|
|
2772
|
+
readonly type: "integer";
|
|
2773
|
+
readonly description: "优先级";
|
|
2774
|
+
readonly format: "int32";
|
|
2775
|
+
};
|
|
2776
|
+
readonly type: {
|
|
2777
|
+
readonly type: "string";
|
|
2778
|
+
readonly description: "用例类型(unit 单元测试 | interface 接口测试 | feature 功能测试 | install 安装部署 | config 配置相关 | performance 性能测试 | security 安全相关 | other 其他)";
|
|
2779
|
+
};
|
|
2780
|
+
readonly precondition: {
|
|
2781
|
+
readonly type: "string";
|
|
2782
|
+
readonly description: "前置条件";
|
|
2783
|
+
};
|
|
2784
|
+
readonly steps: {
|
|
2785
|
+
readonly type: "array";
|
|
2786
|
+
readonly items: {
|
|
2787
|
+
readonly type: "string";
|
|
2788
|
+
};
|
|
2789
|
+
readonly description: "用例步骤";
|
|
2790
|
+
};
|
|
2791
|
+
readonly expects: {
|
|
2792
|
+
readonly type: "array";
|
|
2793
|
+
readonly items: {
|
|
2794
|
+
readonly type: "string";
|
|
2795
|
+
};
|
|
2796
|
+
readonly description: "用例步骤期望";
|
|
2797
|
+
};
|
|
2798
|
+
readonly stepType: {
|
|
2799
|
+
readonly type: "array";
|
|
2800
|
+
readonly items: {
|
|
2801
|
+
readonly type: "string";
|
|
2802
|
+
};
|
|
2803
|
+
readonly description: "用例步骤类型(step 步骤 | group 父级步骤)";
|
|
2804
|
+
};
|
|
2805
|
+
};
|
|
2806
|
+
readonly required: readonly ["title"];
|
|
2807
|
+
};
|
|
2808
|
+
};
|
|
2809
|
+
}, {
|
|
2810
|
+
readonly name: "delete";
|
|
2811
|
+
readonly display: "删除测试用例";
|
|
2812
|
+
readonly type: "delete";
|
|
2813
|
+
readonly method: "delete";
|
|
2814
|
+
readonly path: "/testcases/{testcasID}";
|
|
2815
|
+
readonly resultType: "text";
|
|
2816
|
+
readonly pathParams: {
|
|
2817
|
+
readonly testcasID: "测试用例ID";
|
|
2818
|
+
};
|
|
2819
|
+
readonly render: "action";
|
|
2820
|
+
}];
|
|
2821
|
+
}, {
|
|
2822
|
+
readonly name: "task";
|
|
2823
|
+
readonly display: "任务";
|
|
2824
|
+
readonly description: "任务管理,支持获取任务列表,支持获取执行下的任务、创建任务、获取任务详情、修改任务、删除任务、激活任务、关闭任务、完成任务、启动任务";
|
|
2825
|
+
readonly actions: readonly [{
|
|
2826
|
+
readonly name: "list";
|
|
2827
|
+
readonly display: "获取任务列表,支持获取执行下的任务";
|
|
2828
|
+
readonly type: "list";
|
|
2829
|
+
readonly method: "get";
|
|
2830
|
+
readonly path: "/{scope}/{scopeID}/tasks";
|
|
2831
|
+
readonly resultType: "list";
|
|
2832
|
+
readonly pagerGetter: "pager";
|
|
2833
|
+
readonly resultGetter: "tasks";
|
|
2834
|
+
readonly pathParams: {
|
|
2835
|
+
readonly scope: {
|
|
2836
|
+
readonly description: "任务范围";
|
|
2837
|
+
readonly options: readonly [{
|
|
2838
|
+
readonly value: "executions";
|
|
2839
|
+
readonly label: "执行";
|
|
2840
|
+
}];
|
|
2841
|
+
};
|
|
2842
|
+
readonly scopeID: "范围ID";
|
|
2843
|
+
};
|
|
2844
|
+
readonly params: readonly [{
|
|
2845
|
+
readonly name: "status";
|
|
2846
|
+
readonly required: false;
|
|
2847
|
+
readonly type: "string";
|
|
2848
|
+
readonly description: "状态,默认是unclosed";
|
|
2849
|
+
readonly defaultValue: "unclosed";
|
|
2850
|
+
readonly options: readonly [{
|
|
2851
|
+
readonly value: "all";
|
|
2852
|
+
readonly label: "全部";
|
|
2853
|
+
}, {
|
|
2854
|
+
readonly value: "unclosed";
|
|
2855
|
+
readonly label: "未关闭";
|
|
2856
|
+
}, {
|
|
2857
|
+
readonly value: "assignedtome";
|
|
2858
|
+
readonly label: "指派给我";
|
|
2859
|
+
}, {
|
|
2860
|
+
readonly value: "assignedtome";
|
|
2861
|
+
readonly label: "指派给我";
|
|
2862
|
+
}, {
|
|
2863
|
+
readonly value: "myinvolved";
|
|
2864
|
+
readonly label: "由我参与";
|
|
2865
|
+
}, {
|
|
2866
|
+
readonly value: "assignedbyme";
|
|
2867
|
+
readonly label: "由我指派";
|
|
2868
|
+
}];
|
|
2869
|
+
}, {
|
|
2870
|
+
readonly name: "orderBy";
|
|
2871
|
+
readonly required: false;
|
|
2872
|
+
readonly type: "string";
|
|
2873
|
+
readonly description: "排序";
|
|
2874
|
+
readonly options: readonly [{
|
|
2875
|
+
readonly value: "id_asc";
|
|
2876
|
+
readonly label: "ID 升序";
|
|
2877
|
+
}, {
|
|
2878
|
+
readonly value: "id_desc";
|
|
2879
|
+
readonly label: "ID 降序";
|
|
2880
|
+
}, {
|
|
2881
|
+
readonly value: "name_asc";
|
|
2882
|
+
readonly label: "名称 升序";
|
|
2883
|
+
}, {
|
|
2884
|
+
readonly value: "name_desc";
|
|
2885
|
+
readonly label: "名称 降序";
|
|
2886
|
+
}, {
|
|
2887
|
+
readonly value: "status_asc";
|
|
2888
|
+
readonly label: "状态 升序";
|
|
2889
|
+
}, {
|
|
2890
|
+
readonly value: "status_desc";
|
|
2891
|
+
readonly label: "状态 降序";
|
|
2892
|
+
}];
|
|
2893
|
+
}, {
|
|
2894
|
+
readonly name: "recPerPage";
|
|
2895
|
+
readonly required: false;
|
|
2896
|
+
readonly type: "number";
|
|
2897
|
+
readonly description: "每页数量,不超过1000";
|
|
2898
|
+
}, {
|
|
2899
|
+
readonly name: "pageID";
|
|
2900
|
+
readonly required: false;
|
|
2901
|
+
readonly type: "number";
|
|
2902
|
+
readonly description: "页码,从第1页开始";
|
|
2903
|
+
}];
|
|
2904
|
+
}, {
|
|
2905
|
+
readonly name: "create";
|
|
2906
|
+
readonly display: "创建任务";
|
|
2907
|
+
readonly type: "create";
|
|
2908
|
+
readonly method: "post";
|
|
2909
|
+
readonly path: "/tasks";
|
|
2910
|
+
readonly resultType: "object";
|
|
2911
|
+
readonly requestBody: {
|
|
2912
|
+
readonly required: true;
|
|
2913
|
+
readonly type: "object";
|
|
2914
|
+
readonly schema: {
|
|
2915
|
+
readonly type: "object";
|
|
2916
|
+
readonly properties: {
|
|
2917
|
+
readonly name: {
|
|
2918
|
+
readonly type: "string";
|
|
2919
|
+
readonly description: "任务名称";
|
|
2920
|
+
};
|
|
2921
|
+
readonly executionID: {
|
|
2922
|
+
readonly type: "integer";
|
|
2923
|
+
readonly description: "所属执行";
|
|
2924
|
+
readonly format: "int32";
|
|
2925
|
+
};
|
|
2926
|
+
readonly type: {
|
|
2927
|
+
readonly type: "string";
|
|
2928
|
+
readonly description: "任务类型";
|
|
2929
|
+
};
|
|
2930
|
+
readonly assignedTo: {
|
|
2931
|
+
readonly type: "string";
|
|
2932
|
+
readonly description: "指派给";
|
|
2933
|
+
};
|
|
2934
|
+
readonly estStarted: {
|
|
2935
|
+
readonly type: "string";
|
|
2936
|
+
readonly description: "预计开始";
|
|
2937
|
+
};
|
|
2938
|
+
readonly deadline: {
|
|
2939
|
+
readonly type: "string";
|
|
2940
|
+
readonly description: "截止日期";
|
|
2941
|
+
};
|
|
2942
|
+
readonly pri: {
|
|
2943
|
+
readonly type: "integer";
|
|
2944
|
+
readonly description: "优先级";
|
|
2945
|
+
readonly format: "int32";
|
|
2946
|
+
};
|
|
2947
|
+
readonly estimate: {
|
|
2948
|
+
readonly type: "number";
|
|
2949
|
+
readonly description: "预计工时";
|
|
2950
|
+
readonly format: "float";
|
|
2951
|
+
};
|
|
2952
|
+
readonly module: {
|
|
2953
|
+
readonly type: "integer";
|
|
2954
|
+
readonly description: "所属模块";
|
|
2955
|
+
readonly format: "int32";
|
|
2956
|
+
};
|
|
2957
|
+
readonly story: {
|
|
2958
|
+
readonly type: "integer";
|
|
2959
|
+
readonly description: "相关需求";
|
|
2960
|
+
readonly format: "int32";
|
|
2961
|
+
};
|
|
2962
|
+
readonly desc: {
|
|
2963
|
+
readonly type: "string";
|
|
2964
|
+
readonly description: "任务描述";
|
|
2965
|
+
};
|
|
2966
|
+
};
|
|
2967
|
+
readonly required: readonly ["name", "executionID"];
|
|
2968
|
+
};
|
|
2969
|
+
};
|
|
2970
|
+
}, {
|
|
2971
|
+
readonly name: "get";
|
|
2972
|
+
readonly display: "获取任务详情";
|
|
2973
|
+
readonly type: "get";
|
|
2974
|
+
readonly method: "get";
|
|
2975
|
+
readonly path: "/tasks/{taskID}";
|
|
2976
|
+
readonly resultType: "object";
|
|
2977
|
+
readonly pathParams: {
|
|
2978
|
+
readonly taskID: "任务ID";
|
|
2979
|
+
};
|
|
2980
|
+
}, {
|
|
2981
|
+
readonly name: "update";
|
|
2982
|
+
readonly display: "修改任务";
|
|
2983
|
+
readonly type: "update";
|
|
2984
|
+
readonly method: "put";
|
|
2985
|
+
readonly path: "/tasks/{taskID}";
|
|
2986
|
+
readonly resultType: "object";
|
|
2987
|
+
readonly pathParams: {
|
|
2988
|
+
readonly taskID: "任务ID";
|
|
2989
|
+
};
|
|
2990
|
+
readonly requestBody: {
|
|
2991
|
+
readonly required: true;
|
|
2992
|
+
readonly type: "object";
|
|
2993
|
+
readonly schema: {
|
|
2994
|
+
readonly type: "object";
|
|
2995
|
+
readonly properties: {
|
|
2996
|
+
readonly name: {
|
|
2997
|
+
readonly type: "string";
|
|
2998
|
+
readonly description: "任务名称";
|
|
2999
|
+
};
|
|
3000
|
+
readonly type: {
|
|
3001
|
+
readonly type: "string";
|
|
3002
|
+
readonly description: "任务类型";
|
|
3003
|
+
};
|
|
3004
|
+
readonly assignedTo: {
|
|
3005
|
+
readonly type: "string";
|
|
3006
|
+
readonly description: "指派给";
|
|
3007
|
+
};
|
|
3008
|
+
readonly estStarted: {
|
|
3009
|
+
readonly type: "string";
|
|
3010
|
+
readonly description: "预计开始";
|
|
3011
|
+
};
|
|
3012
|
+
readonly deadline: {
|
|
3013
|
+
readonly type: "string";
|
|
3014
|
+
readonly description: "截止日期";
|
|
3015
|
+
};
|
|
3016
|
+
readonly pri: {
|
|
3017
|
+
readonly type: "integer";
|
|
3018
|
+
readonly description: "优先级";
|
|
3019
|
+
readonly format: "int32";
|
|
3020
|
+
};
|
|
3021
|
+
readonly estimate: {
|
|
3022
|
+
readonly type: "number";
|
|
3023
|
+
readonly description: "预计工时";
|
|
3024
|
+
readonly format: "float";
|
|
3025
|
+
};
|
|
3026
|
+
readonly module: {
|
|
3027
|
+
readonly type: "integer";
|
|
3028
|
+
readonly description: "所属模块";
|
|
3029
|
+
readonly format: "int32";
|
|
3030
|
+
};
|
|
3031
|
+
readonly story: {
|
|
3032
|
+
readonly type: "integer";
|
|
3033
|
+
readonly description: "相关需求";
|
|
3034
|
+
readonly format: "int32";
|
|
3035
|
+
};
|
|
3036
|
+
readonly desc: {
|
|
3037
|
+
readonly type: "string";
|
|
3038
|
+
readonly description: "任务描述";
|
|
3039
|
+
};
|
|
3040
|
+
};
|
|
3041
|
+
};
|
|
3042
|
+
};
|
|
3043
|
+
}, {
|
|
3044
|
+
readonly name: "delete";
|
|
3045
|
+
readonly display: "删除任务";
|
|
3046
|
+
readonly type: "delete";
|
|
3047
|
+
readonly method: "delete";
|
|
3048
|
+
readonly path: "/tasks/{taskID}";
|
|
3049
|
+
readonly resultType: "text";
|
|
3050
|
+
readonly pathParams: {
|
|
3051
|
+
readonly taskID: "任务ID";
|
|
3052
|
+
};
|
|
3053
|
+
readonly render: "action";
|
|
3054
|
+
}, {
|
|
3055
|
+
readonly name: "activate";
|
|
3056
|
+
readonly display: "激活任务";
|
|
3057
|
+
readonly type: "action";
|
|
3058
|
+
readonly method: "put";
|
|
3059
|
+
readonly path: "/tasks/{taskID}/activate";
|
|
3060
|
+
readonly resultType: "text";
|
|
3061
|
+
readonly pathParams: {
|
|
3062
|
+
readonly taskID: "任务ID";
|
|
3063
|
+
};
|
|
3064
|
+
readonly requestBody: {
|
|
3065
|
+
readonly required: true;
|
|
3066
|
+
readonly type: "object";
|
|
3067
|
+
readonly schema: {
|
|
3068
|
+
readonly type: "object";
|
|
3069
|
+
readonly properties: {
|
|
3070
|
+
readonly left: {
|
|
3071
|
+
readonly type: "number";
|
|
3072
|
+
readonly description: "预计剩余";
|
|
3073
|
+
readonly format: "float";
|
|
3074
|
+
};
|
|
3075
|
+
readonly assignedTo: {
|
|
3076
|
+
readonly type: "string";
|
|
3077
|
+
readonly description: "指派给";
|
|
3078
|
+
};
|
|
3079
|
+
readonly comment: {
|
|
3080
|
+
readonly type: "string";
|
|
3081
|
+
readonly description: "备注";
|
|
3082
|
+
};
|
|
3083
|
+
};
|
|
3084
|
+
};
|
|
3085
|
+
};
|
|
3086
|
+
readonly render: "action";
|
|
3087
|
+
}, {
|
|
3088
|
+
readonly name: "close";
|
|
3089
|
+
readonly display: "关闭任务";
|
|
3090
|
+
readonly type: "action";
|
|
3091
|
+
readonly method: "put";
|
|
3092
|
+
readonly path: "/tasks/{taskID}/close";
|
|
3093
|
+
readonly resultType: "text";
|
|
3094
|
+
readonly pathParams: {
|
|
3095
|
+
readonly taskID: "任务ID";
|
|
3096
|
+
};
|
|
3097
|
+
readonly requestBody: {
|
|
3098
|
+
readonly required: true;
|
|
3099
|
+
readonly type: "object";
|
|
3100
|
+
readonly schema: {
|
|
3101
|
+
readonly type: "object";
|
|
3102
|
+
readonly properties: {
|
|
3103
|
+
readonly comment: {
|
|
3104
|
+
readonly type: "string";
|
|
3105
|
+
readonly description: "备注";
|
|
3106
|
+
};
|
|
3107
|
+
};
|
|
3108
|
+
};
|
|
3109
|
+
};
|
|
3110
|
+
readonly render: "action";
|
|
3111
|
+
}, {
|
|
3112
|
+
readonly name: "finish";
|
|
3113
|
+
readonly display: "完成任务";
|
|
3114
|
+
readonly type: "action";
|
|
3115
|
+
readonly method: "put";
|
|
3116
|
+
readonly path: "/tasks/{taskID}/finish";
|
|
3117
|
+
readonly resultType: "text";
|
|
3118
|
+
readonly pathParams: {
|
|
3119
|
+
readonly taskID: "任务ID";
|
|
3120
|
+
};
|
|
3121
|
+
readonly requestBody: {
|
|
3122
|
+
readonly required: true;
|
|
3123
|
+
readonly type: "object";
|
|
3124
|
+
readonly schema: {
|
|
3125
|
+
readonly type: "object";
|
|
3126
|
+
readonly properties: {
|
|
3127
|
+
readonly currentConsumed: {
|
|
3128
|
+
readonly type: "number";
|
|
3129
|
+
readonly description: "本次消耗";
|
|
3130
|
+
readonly format: "float";
|
|
3131
|
+
};
|
|
3132
|
+
readonly assignedTo: {
|
|
3133
|
+
readonly type: "string";
|
|
3134
|
+
readonly description: "任务名称";
|
|
3135
|
+
};
|
|
3136
|
+
readonly consumed: {
|
|
3137
|
+
readonly type: "number";
|
|
3138
|
+
readonly description: "总计消耗";
|
|
3139
|
+
readonly format: "float";
|
|
3140
|
+
};
|
|
3141
|
+
readonly realStarted: {
|
|
3142
|
+
readonly type: "string";
|
|
3143
|
+
readonly description: "实际开始";
|
|
3144
|
+
};
|
|
3145
|
+
readonly finishedDate: {
|
|
3146
|
+
readonly type: "string";
|
|
3147
|
+
readonly description: "实际完成";
|
|
3148
|
+
};
|
|
3149
|
+
readonly comment: {
|
|
3150
|
+
readonly type: "string";
|
|
3151
|
+
readonly description: "备注";
|
|
3152
|
+
};
|
|
3153
|
+
};
|
|
3154
|
+
readonly required: readonly ["currentConsumed", "realStarted", "finishedDate"];
|
|
3155
|
+
};
|
|
3156
|
+
};
|
|
3157
|
+
readonly render: "action";
|
|
3158
|
+
}, {
|
|
3159
|
+
readonly name: "start";
|
|
3160
|
+
readonly display: "启动任务";
|
|
3161
|
+
readonly type: "action";
|
|
3162
|
+
readonly method: "put";
|
|
3163
|
+
readonly path: "/tasks/{taskID}/start";
|
|
3164
|
+
readonly resultType: "text";
|
|
3165
|
+
readonly pathParams: {
|
|
3166
|
+
readonly taskID: "任务ID";
|
|
3167
|
+
};
|
|
3168
|
+
readonly requestBody: {
|
|
3169
|
+
readonly required: true;
|
|
3170
|
+
readonly type: "object";
|
|
3171
|
+
readonly schema: {
|
|
3172
|
+
readonly type: "object";
|
|
3173
|
+
readonly properties: {
|
|
3174
|
+
readonly assignedTo: {
|
|
3175
|
+
readonly type: "string";
|
|
3176
|
+
readonly description: "任务名称";
|
|
3177
|
+
};
|
|
3178
|
+
readonly realStarted: {
|
|
3179
|
+
readonly type: "string";
|
|
3180
|
+
readonly description: "实际开始";
|
|
3181
|
+
};
|
|
3182
|
+
readonly consumed: {
|
|
3183
|
+
readonly type: "number";
|
|
3184
|
+
readonly description: "总计消耗";
|
|
3185
|
+
readonly format: "float";
|
|
3186
|
+
};
|
|
3187
|
+
readonly left: {
|
|
3188
|
+
readonly type: "number";
|
|
3189
|
+
readonly description: "预计剩余";
|
|
3190
|
+
readonly format: "float";
|
|
3191
|
+
};
|
|
3192
|
+
readonly comment: {
|
|
3193
|
+
readonly type: "string";
|
|
3194
|
+
readonly description: "备注";
|
|
3195
|
+
};
|
|
3196
|
+
};
|
|
3197
|
+
readonly required: readonly ["realStarted"];
|
|
3198
|
+
};
|
|
3199
|
+
};
|
|
3200
|
+
readonly render: "action";
|
|
3201
|
+
}];
|
|
3202
|
+
}, {
|
|
3203
|
+
readonly name: "feedback";
|
|
3204
|
+
readonly display: "反馈";
|
|
3205
|
+
readonly description: "反馈管理,支持获取反馈列表,支持获取产品下的反馈、创建反馈、获取反馈详情、修改反馈、删除反馈、激活反馈、关闭反馈";
|
|
3206
|
+
readonly actions: readonly [{
|
|
3207
|
+
readonly name: "list";
|
|
3208
|
+
readonly display: "获取反馈列表,支持获取产品下的反馈";
|
|
3209
|
+
readonly type: "list";
|
|
3210
|
+
readonly method: "get";
|
|
3211
|
+
readonly path: "/{scope}/{scopeID}/feedbacks";
|
|
3212
|
+
readonly resultType: "list";
|
|
3213
|
+
readonly pagerGetter: "pager";
|
|
3214
|
+
readonly resultGetter: "feedbacks";
|
|
3215
|
+
readonly pathParams: {
|
|
3216
|
+
readonly scope: {
|
|
3217
|
+
readonly description: "反馈范围";
|
|
3218
|
+
readonly options: readonly [{
|
|
3219
|
+
readonly value: "products";
|
|
3220
|
+
readonly label: "产品";
|
|
3221
|
+
}];
|
|
3222
|
+
};
|
|
3223
|
+
readonly scopeID: "范围ID";
|
|
3224
|
+
};
|
|
3225
|
+
readonly params: readonly [{
|
|
3226
|
+
readonly name: "browseType";
|
|
3227
|
+
readonly required: false;
|
|
3228
|
+
readonly type: "string";
|
|
3229
|
+
readonly description: "状态,默认是wait";
|
|
3230
|
+
readonly defaultValue: "wait";
|
|
3231
|
+
readonly options: readonly [{
|
|
3232
|
+
readonly value: "all";
|
|
3233
|
+
readonly label: "全部";
|
|
3234
|
+
}, {
|
|
3235
|
+
readonly value: "wait";
|
|
3236
|
+
readonly label: "待处理";
|
|
3237
|
+
}, {
|
|
3238
|
+
readonly value: "doing";
|
|
3239
|
+
readonly label: "处理中";
|
|
3240
|
+
}, {
|
|
3241
|
+
readonly value: "toclosed";
|
|
3242
|
+
readonly label: "待关闭";
|
|
3243
|
+
}, {
|
|
3244
|
+
readonly value: "review";
|
|
3245
|
+
readonly label: "待评审";
|
|
3246
|
+
}, {
|
|
3247
|
+
readonly value: "assigntome";
|
|
3248
|
+
readonly label: "指派给我";
|
|
3249
|
+
}, {
|
|
3250
|
+
readonly value: "openedbyme";
|
|
3251
|
+
readonly label: "由我反馈";
|
|
3252
|
+
}];
|
|
3253
|
+
}, {
|
|
3254
|
+
readonly name: "orderBy";
|
|
3255
|
+
readonly required: false;
|
|
3256
|
+
readonly type: "string";
|
|
3257
|
+
readonly description: "排序";
|
|
3258
|
+
readonly options: readonly [{
|
|
3259
|
+
readonly value: "id_asc";
|
|
3260
|
+
readonly label: "ID 升序";
|
|
3261
|
+
}, {
|
|
3262
|
+
readonly value: "id_desc";
|
|
3263
|
+
readonly label: "ID 降序";
|
|
3264
|
+
}, {
|
|
3265
|
+
readonly value: "title_asc";
|
|
3266
|
+
readonly label: "标题 升序";
|
|
3267
|
+
}, {
|
|
3268
|
+
readonly value: "title_desc";
|
|
3269
|
+
readonly label: "标题 降序";
|
|
3270
|
+
}, {
|
|
3271
|
+
readonly value: "status_asc";
|
|
3272
|
+
readonly label: "状态 升序";
|
|
3273
|
+
}, {
|
|
3274
|
+
readonly value: "status_desc";
|
|
3275
|
+
readonly label: "状态 降序";
|
|
3276
|
+
}];
|
|
3277
|
+
}, {
|
|
3278
|
+
readonly name: "recPerPage";
|
|
3279
|
+
readonly required: false;
|
|
3280
|
+
readonly type: "number";
|
|
3281
|
+
readonly description: "每页数量,不超过1000";
|
|
3282
|
+
}, {
|
|
3283
|
+
readonly name: "pageID";
|
|
3284
|
+
readonly required: false;
|
|
3285
|
+
readonly type: "number";
|
|
3286
|
+
readonly description: "页码,从第1页开始";
|
|
3287
|
+
}];
|
|
3288
|
+
}, {
|
|
3289
|
+
readonly name: "create";
|
|
3290
|
+
readonly display: "创建反馈";
|
|
3291
|
+
readonly type: "create";
|
|
3292
|
+
readonly method: "post";
|
|
3293
|
+
readonly path: "/feedbacks";
|
|
3294
|
+
readonly resultType: "object";
|
|
3295
|
+
readonly requestBody: {
|
|
3296
|
+
readonly required: true;
|
|
3297
|
+
readonly type: "object";
|
|
3298
|
+
readonly schema: {
|
|
3299
|
+
readonly type: "object";
|
|
3300
|
+
readonly properties: {
|
|
3301
|
+
readonly product: {
|
|
3302
|
+
readonly type: "integer";
|
|
3303
|
+
readonly description: "所属产品";
|
|
3304
|
+
readonly format: "int32";
|
|
3305
|
+
};
|
|
3306
|
+
readonly title: {
|
|
3307
|
+
readonly type: "string";
|
|
3308
|
+
readonly description: "标题";
|
|
3309
|
+
};
|
|
3310
|
+
readonly module: {
|
|
3311
|
+
readonly type: "integer";
|
|
3312
|
+
readonly description: "所属模块";
|
|
3313
|
+
readonly format: "int32";
|
|
3314
|
+
};
|
|
3315
|
+
readonly type: {
|
|
3316
|
+
readonly type: "string";
|
|
3317
|
+
readonly description: "类型(story 需求 | task 任务 | bug Bug | todo 待办 | advice 建议 | issue 问题 | risk 风险 | opportunity 机会)";
|
|
3318
|
+
};
|
|
3319
|
+
readonly desc: {
|
|
3320
|
+
readonly type: "string";
|
|
3321
|
+
readonly description: "描述";
|
|
3322
|
+
};
|
|
3323
|
+
readonly feedbackBy: {
|
|
3324
|
+
readonly type: "string";
|
|
3325
|
+
readonly description: "反馈者";
|
|
3326
|
+
};
|
|
3327
|
+
readonly source: {
|
|
3328
|
+
readonly type: "string";
|
|
3329
|
+
readonly description: "来源";
|
|
3330
|
+
};
|
|
3331
|
+
};
|
|
3332
|
+
readonly required: readonly ["product", "title"];
|
|
3333
|
+
};
|
|
3334
|
+
};
|
|
3335
|
+
}, {
|
|
3336
|
+
readonly name: "get";
|
|
3337
|
+
readonly display: "获取反馈详情";
|
|
3338
|
+
readonly type: "get";
|
|
3339
|
+
readonly method: "get";
|
|
3340
|
+
readonly path: "/feedbacks/{feedbackID}";
|
|
3341
|
+
readonly resultType: "object";
|
|
3342
|
+
readonly resultGetter: "feedback";
|
|
3343
|
+
readonly pathParams: {
|
|
3344
|
+
readonly feedbackID: "反馈ID";
|
|
3345
|
+
};
|
|
3346
|
+
}, {
|
|
3347
|
+
readonly name: "update";
|
|
3348
|
+
readonly display: "修改反馈";
|
|
3349
|
+
readonly type: "update";
|
|
3350
|
+
readonly method: "put";
|
|
3351
|
+
readonly path: "/feedbacks/{feedbackID}";
|
|
3352
|
+
readonly resultType: "object";
|
|
3353
|
+
readonly pathParams: {
|
|
3354
|
+
readonly feedbackID: "反馈ID";
|
|
3355
|
+
};
|
|
3356
|
+
readonly requestBody: {
|
|
3357
|
+
readonly required: true;
|
|
3358
|
+
readonly type: "object";
|
|
3359
|
+
readonly schema: {
|
|
3360
|
+
readonly type: "object";
|
|
3361
|
+
readonly properties: {
|
|
3362
|
+
readonly product: {
|
|
3363
|
+
readonly type: "integer";
|
|
3364
|
+
readonly description: "所属产品";
|
|
3365
|
+
readonly format: "int32";
|
|
3366
|
+
};
|
|
3367
|
+
readonly module: {
|
|
3368
|
+
readonly type: "integer";
|
|
3369
|
+
readonly description: "所属模块";
|
|
3370
|
+
readonly format: "int32";
|
|
3371
|
+
};
|
|
3372
|
+
readonly title: {
|
|
3373
|
+
readonly type: "string";
|
|
3374
|
+
readonly description: "标题";
|
|
3375
|
+
};
|
|
3376
|
+
readonly type: {
|
|
3377
|
+
readonly type: "string";
|
|
3378
|
+
readonly description: "类型(story 需求 | task 任务 | bug Bug | todo 待办 | advice 建议 | issue 问题 | risk 风险 | opportunity 机会)";
|
|
3379
|
+
};
|
|
3380
|
+
readonly desc: {
|
|
3381
|
+
readonly type: "string";
|
|
3382
|
+
readonly description: "描述";
|
|
3383
|
+
};
|
|
3384
|
+
readonly feedbackBy: {
|
|
3385
|
+
readonly type: "string";
|
|
3386
|
+
readonly description: "反馈者";
|
|
3387
|
+
};
|
|
3388
|
+
readonly source: {
|
|
3389
|
+
readonly type: "string";
|
|
3390
|
+
readonly description: "来源";
|
|
3391
|
+
};
|
|
3392
|
+
};
|
|
3393
|
+
readonly required: readonly ["product", "title"];
|
|
3394
|
+
};
|
|
3395
|
+
};
|
|
3396
|
+
}, {
|
|
3397
|
+
readonly name: "delete";
|
|
3398
|
+
readonly display: "删除反馈";
|
|
3399
|
+
readonly type: "delete";
|
|
3400
|
+
readonly method: "delete";
|
|
3401
|
+
readonly path: "/feedbacks/{feedbackID}";
|
|
3402
|
+
readonly resultType: "text";
|
|
3403
|
+
readonly pathParams: {
|
|
3404
|
+
readonly feedbackID: "反馈ID";
|
|
3405
|
+
};
|
|
3406
|
+
readonly render: "action";
|
|
3407
|
+
}, {
|
|
3408
|
+
readonly name: "activate";
|
|
3409
|
+
readonly display: "激活反馈";
|
|
3410
|
+
readonly type: "action";
|
|
3411
|
+
readonly method: "put";
|
|
3412
|
+
readonly path: "/feedbacks/{feedbackID}/activate";
|
|
3413
|
+
readonly resultType: "text";
|
|
3414
|
+
readonly pathParams: {
|
|
3415
|
+
readonly feedbackID: "反馈ID";
|
|
3416
|
+
};
|
|
3417
|
+
readonly requestBody: {
|
|
3418
|
+
readonly required: true;
|
|
3419
|
+
readonly type: "object";
|
|
3420
|
+
readonly schema: {
|
|
3421
|
+
readonly type: "object";
|
|
3422
|
+
readonly properties: {
|
|
3423
|
+
readonly assignedTo: {
|
|
3424
|
+
readonly type: "string";
|
|
3425
|
+
readonly description: "指派给";
|
|
3426
|
+
};
|
|
3427
|
+
readonly comment: {
|
|
3428
|
+
readonly type: "string";
|
|
3429
|
+
readonly description: "备注";
|
|
3430
|
+
};
|
|
3431
|
+
};
|
|
3432
|
+
};
|
|
3433
|
+
};
|
|
3434
|
+
readonly render: "action";
|
|
3435
|
+
}, {
|
|
3436
|
+
readonly name: "close";
|
|
3437
|
+
readonly display: "关闭反馈";
|
|
3438
|
+
readonly type: "action";
|
|
3439
|
+
readonly method: "put";
|
|
3440
|
+
readonly path: "/feedbacks/{feedbackID}/close";
|
|
3441
|
+
readonly resultType: "text";
|
|
3442
|
+
readonly pathParams: {
|
|
3443
|
+
readonly feedbackID: "反馈ID";
|
|
3444
|
+
};
|
|
3445
|
+
readonly requestBody: {
|
|
3446
|
+
readonly required: true;
|
|
3447
|
+
readonly type: "object";
|
|
3448
|
+
readonly schema: {
|
|
3449
|
+
readonly type: "object";
|
|
3450
|
+
readonly properties: {
|
|
3451
|
+
readonly closedReason: {
|
|
3452
|
+
readonly type: "string";
|
|
3453
|
+
readonly description: "关闭原因(commented 已处理 | repeat 重复 | refuse 不予采纳)";
|
|
3454
|
+
};
|
|
3455
|
+
readonly comment: {
|
|
3456
|
+
readonly type: "string";
|
|
3457
|
+
readonly description: "备注";
|
|
3458
|
+
};
|
|
3459
|
+
};
|
|
3460
|
+
readonly required: readonly ["closedReason"];
|
|
3461
|
+
};
|
|
3462
|
+
};
|
|
3463
|
+
readonly render: "action";
|
|
3464
|
+
}];
|
|
3465
|
+
}, {
|
|
3466
|
+
readonly name: "ticket";
|
|
3467
|
+
readonly display: "工单";
|
|
3468
|
+
readonly description: "工单管理,支持获取工单列表,支持获取产品下的工单、创建工单、获取工单详情、修改工单、删除工单、激活工单、关闭工单";
|
|
3469
|
+
readonly actions: readonly [{
|
|
3470
|
+
readonly name: "list";
|
|
3471
|
+
readonly display: "获取工单列表,支持获取产品下的工单";
|
|
3472
|
+
readonly type: "list";
|
|
3473
|
+
readonly method: "get";
|
|
3474
|
+
readonly path: "/{scope}/{scopeID}/tickets";
|
|
3475
|
+
readonly resultType: "list";
|
|
3476
|
+
readonly pagerGetter: "pager";
|
|
3477
|
+
readonly resultGetter: "tickets";
|
|
3478
|
+
readonly pathParams: {
|
|
3479
|
+
readonly scope: {
|
|
3480
|
+
readonly description: "工单范围";
|
|
3481
|
+
readonly options: readonly [{
|
|
3482
|
+
readonly value: "products";
|
|
3483
|
+
readonly label: "产品";
|
|
3484
|
+
}];
|
|
3485
|
+
};
|
|
3486
|
+
readonly scopeID: "范围ID";
|
|
3487
|
+
};
|
|
3488
|
+
readonly params: readonly [{
|
|
3489
|
+
readonly name: "browseType";
|
|
3490
|
+
readonly required: false;
|
|
3491
|
+
readonly type: "string";
|
|
3492
|
+
readonly description: "状态,默认是wait";
|
|
3493
|
+
readonly defaultValue: "wait";
|
|
3494
|
+
readonly options: readonly [{
|
|
3495
|
+
readonly value: "all";
|
|
3496
|
+
readonly label: "全部";
|
|
3497
|
+
}, {
|
|
3498
|
+
readonly value: "unclosed";
|
|
3499
|
+
readonly label: "未关闭";
|
|
3500
|
+
}, {
|
|
3501
|
+
readonly value: "wait";
|
|
3502
|
+
readonly label: "待处理";
|
|
3503
|
+
}, {
|
|
3504
|
+
readonly value: "doing";
|
|
3505
|
+
readonly label: "处理中";
|
|
3506
|
+
}, {
|
|
3507
|
+
readonly value: "done";
|
|
3508
|
+
readonly label: "待关闭";
|
|
3509
|
+
}, {
|
|
3510
|
+
readonly value: "finishedbyme";
|
|
3511
|
+
readonly label: "由我解决";
|
|
3512
|
+
}, {
|
|
3513
|
+
readonly value: "assigntome";
|
|
3514
|
+
readonly label: "指派给我";
|
|
3515
|
+
}, {
|
|
3516
|
+
readonly value: "openedbyme";
|
|
3517
|
+
readonly label: "由我创建";
|
|
3518
|
+
}];
|
|
3519
|
+
}, {
|
|
3520
|
+
readonly name: "orderBy";
|
|
3521
|
+
readonly required: false;
|
|
3522
|
+
readonly type: "string";
|
|
3523
|
+
readonly description: "排序";
|
|
3524
|
+
readonly options: readonly [{
|
|
3525
|
+
readonly value: "id_asc";
|
|
3526
|
+
readonly label: "ID 升序";
|
|
3527
|
+
}, {
|
|
3528
|
+
readonly value: "id_desc";
|
|
3529
|
+
readonly label: "ID 降序";
|
|
3530
|
+
}, {
|
|
3531
|
+
readonly value: "title_asc";
|
|
3532
|
+
readonly label: "标题 升序";
|
|
3533
|
+
}, {
|
|
3534
|
+
readonly value: "title_desc";
|
|
3535
|
+
readonly label: "标题 降序";
|
|
3536
|
+
}, {
|
|
3537
|
+
readonly value: "status_asc";
|
|
3538
|
+
readonly label: "状态 升序";
|
|
3539
|
+
}, {
|
|
3540
|
+
readonly value: "status_desc";
|
|
3541
|
+
readonly label: "状态 降序";
|
|
3542
|
+
}];
|
|
3543
|
+
}, {
|
|
3544
|
+
readonly name: "recPerPage";
|
|
3545
|
+
readonly required: false;
|
|
3546
|
+
readonly type: "number";
|
|
3547
|
+
readonly description: "每页数量,不超过1000";
|
|
3548
|
+
}, {
|
|
3549
|
+
readonly name: "pageID";
|
|
3550
|
+
readonly required: false;
|
|
3551
|
+
readonly type: "number";
|
|
3552
|
+
readonly description: "页码,从第1页开始";
|
|
3553
|
+
}];
|
|
3554
|
+
}, {
|
|
3555
|
+
readonly name: "create";
|
|
3556
|
+
readonly display: "创建工单";
|
|
3557
|
+
readonly type: "create";
|
|
3558
|
+
readonly method: "post";
|
|
3559
|
+
readonly path: "/tickets";
|
|
3560
|
+
readonly resultType: "object";
|
|
3561
|
+
readonly requestBody: {
|
|
3562
|
+
readonly required: true;
|
|
3563
|
+
readonly type: "object";
|
|
3564
|
+
readonly schema: {
|
|
3565
|
+
readonly type: "object";
|
|
3566
|
+
readonly properties: {
|
|
3567
|
+
readonly product: {
|
|
3568
|
+
readonly type: "integer";
|
|
3569
|
+
readonly description: "所属产品";
|
|
3570
|
+
readonly format: "int32";
|
|
3571
|
+
};
|
|
3572
|
+
readonly module: {
|
|
3573
|
+
readonly type: "integer";
|
|
3574
|
+
readonly description: "所属模块";
|
|
3575
|
+
readonly format: "int32";
|
|
3576
|
+
};
|
|
3577
|
+
readonly title: {
|
|
3578
|
+
readonly type: "string";
|
|
3579
|
+
readonly description: "标题";
|
|
3580
|
+
};
|
|
3581
|
+
readonly type: {
|
|
3582
|
+
readonly type: "string";
|
|
3583
|
+
readonly description: "类型(code 程序报错 | data 数据错误 | stuck 流程卡断 | security 安全问题 | affair 事务)";
|
|
3584
|
+
};
|
|
3585
|
+
readonly desc: {
|
|
3586
|
+
readonly type: "string";
|
|
3587
|
+
readonly description: "描述";
|
|
3588
|
+
};
|
|
3589
|
+
readonly assignedTo: {
|
|
3590
|
+
readonly type: "string";
|
|
3591
|
+
readonly description: "指派给";
|
|
3592
|
+
};
|
|
3593
|
+
readonly deadline: {
|
|
3594
|
+
readonly type: "string";
|
|
3595
|
+
readonly description: "截止日期";
|
|
3596
|
+
};
|
|
3597
|
+
readonly openedBuild: {
|
|
3598
|
+
readonly type: "array";
|
|
3599
|
+
readonly items: {
|
|
3600
|
+
readonly type: "string";
|
|
3601
|
+
};
|
|
3602
|
+
readonly description: "影响版本";
|
|
3603
|
+
};
|
|
3604
|
+
};
|
|
3605
|
+
readonly required: readonly ["product", "title"];
|
|
3606
|
+
};
|
|
3607
|
+
};
|
|
3608
|
+
}, {
|
|
3609
|
+
readonly name: "get";
|
|
3610
|
+
readonly display: "获取工单详情";
|
|
3611
|
+
readonly type: "get";
|
|
3612
|
+
readonly method: "get";
|
|
3613
|
+
readonly path: "/tickets/{ticketID}";
|
|
3614
|
+
readonly resultType: "object";
|
|
3615
|
+
readonly resultGetter: "ticket";
|
|
3616
|
+
readonly pathParams: {
|
|
3617
|
+
readonly ticketID: "工单ID";
|
|
3618
|
+
};
|
|
3619
|
+
}, {
|
|
3620
|
+
readonly name: "update";
|
|
3621
|
+
readonly display: "修改工单";
|
|
3622
|
+
readonly type: "update";
|
|
3623
|
+
readonly method: "put";
|
|
3624
|
+
readonly path: "/tickets/{ticketID}";
|
|
3625
|
+
readonly resultType: "object";
|
|
3626
|
+
readonly pathParams: {
|
|
3627
|
+
readonly ticketID: "工单ID";
|
|
3628
|
+
};
|
|
3629
|
+
readonly requestBody: {
|
|
3630
|
+
readonly required: true;
|
|
3631
|
+
readonly type: "object";
|
|
3632
|
+
readonly schema: {
|
|
3633
|
+
readonly type: "object";
|
|
3634
|
+
readonly properties: {
|
|
3635
|
+
readonly product: {
|
|
3636
|
+
readonly type: "integer";
|
|
3637
|
+
readonly description: "所属产品";
|
|
3638
|
+
readonly format: "int32";
|
|
3639
|
+
};
|
|
3640
|
+
readonly module: {
|
|
3641
|
+
readonly type: "integer";
|
|
3642
|
+
readonly description: "所属模块";
|
|
3643
|
+
readonly format: "int32";
|
|
3644
|
+
};
|
|
3645
|
+
readonly title: {
|
|
3646
|
+
readonly type: "string";
|
|
3647
|
+
readonly description: "标题";
|
|
3648
|
+
};
|
|
3649
|
+
readonly type: {
|
|
3650
|
+
readonly type: "string";
|
|
3651
|
+
readonly description: "类型(code 程序报错 | data 数据错误 | stuck 流程卡断 | security 安全问题 | affair 事务)";
|
|
3652
|
+
};
|
|
3653
|
+
readonly desc: {
|
|
3654
|
+
readonly type: "string";
|
|
3655
|
+
readonly description: "描述";
|
|
3656
|
+
};
|
|
3657
|
+
readonly assignedTo: {
|
|
3658
|
+
readonly type: "string";
|
|
3659
|
+
readonly description: "指派给";
|
|
3660
|
+
};
|
|
3661
|
+
readonly deadline: {
|
|
3662
|
+
readonly type: "string";
|
|
3663
|
+
readonly description: "截止日期";
|
|
3664
|
+
};
|
|
3665
|
+
readonly openedBuild: {
|
|
3666
|
+
readonly type: "array";
|
|
3667
|
+
readonly items: {
|
|
3668
|
+
readonly type: "string";
|
|
3669
|
+
};
|
|
3670
|
+
readonly description: "影响版本";
|
|
3671
|
+
};
|
|
3672
|
+
};
|
|
3673
|
+
};
|
|
3674
|
+
};
|
|
3675
|
+
}, {
|
|
3676
|
+
readonly name: "delete";
|
|
3677
|
+
readonly display: "删除工单";
|
|
3678
|
+
readonly type: "delete";
|
|
3679
|
+
readonly method: "delete";
|
|
3680
|
+
readonly path: "/tickets/{ticketID}";
|
|
3681
|
+
readonly resultType: "text";
|
|
3682
|
+
readonly pathParams: {
|
|
3683
|
+
readonly ticketID: "工单ID";
|
|
3684
|
+
};
|
|
3685
|
+
readonly render: "action";
|
|
3686
|
+
}, {
|
|
3687
|
+
readonly name: "activate";
|
|
3688
|
+
readonly display: "激活工单";
|
|
3689
|
+
readonly type: "action";
|
|
3690
|
+
readonly method: "put";
|
|
3691
|
+
readonly path: "/tickets/{ticketID}/activate";
|
|
3692
|
+
readonly resultType: "text";
|
|
3693
|
+
readonly pathParams: {
|
|
3694
|
+
readonly ticketID: "工单ID";
|
|
3695
|
+
};
|
|
3696
|
+
readonly requestBody: {
|
|
3697
|
+
readonly required: true;
|
|
3698
|
+
readonly type: "object";
|
|
3699
|
+
readonly schema: {
|
|
3700
|
+
readonly type: "object";
|
|
3701
|
+
readonly properties: {
|
|
3702
|
+
readonly assignedTo: {
|
|
3703
|
+
readonly type: "string";
|
|
3704
|
+
readonly description: "指派给";
|
|
3705
|
+
};
|
|
3706
|
+
readonly comment: {
|
|
3707
|
+
readonly type: "string";
|
|
3708
|
+
readonly description: "备注";
|
|
3709
|
+
};
|
|
3710
|
+
};
|
|
3711
|
+
};
|
|
3712
|
+
};
|
|
3713
|
+
readonly render: "action";
|
|
3714
|
+
}, {
|
|
3715
|
+
readonly name: "close";
|
|
3716
|
+
readonly display: "关闭工单";
|
|
3717
|
+
readonly type: "action";
|
|
3718
|
+
readonly method: "put";
|
|
3719
|
+
readonly path: "/tickets/{ticketID}/close";
|
|
3720
|
+
readonly resultType: "text";
|
|
3721
|
+
readonly pathParams: {
|
|
3722
|
+
readonly ticketID: "工单ID";
|
|
3723
|
+
};
|
|
3724
|
+
readonly requestBody: {
|
|
3725
|
+
readonly required: true;
|
|
3726
|
+
readonly type: "object";
|
|
3727
|
+
readonly schema: {
|
|
3728
|
+
readonly type: "object";
|
|
3729
|
+
readonly properties: {
|
|
3730
|
+
readonly closedReason: {
|
|
3731
|
+
readonly type: "string";
|
|
3732
|
+
readonly description: "关闭原因(commented 已处理 | repeat 重复 | refuse 不予处理)";
|
|
3733
|
+
};
|
|
3734
|
+
readonly comment: {
|
|
3735
|
+
readonly type: "string";
|
|
3736
|
+
readonly description: "备注";
|
|
3737
|
+
};
|
|
3738
|
+
};
|
|
3739
|
+
readonly required: readonly ["closedReason", "comment"];
|
|
3740
|
+
};
|
|
3741
|
+
};
|
|
3742
|
+
readonly render: "action";
|
|
3743
|
+
}];
|
|
3744
|
+
}, {
|
|
3745
|
+
readonly name: "system";
|
|
3746
|
+
readonly display: "应用";
|
|
3747
|
+
readonly description: "应用管理,支持获取应用列表,支持获取产品下的应用、创建应用、修改应用";
|
|
3748
|
+
readonly actions: readonly [{
|
|
3749
|
+
readonly name: "list";
|
|
3750
|
+
readonly display: "获取应用列表,支持获取产品下的应用";
|
|
3751
|
+
readonly type: "list";
|
|
3752
|
+
readonly method: "get";
|
|
3753
|
+
readonly path: "/{scope}/{scopeID}/systems";
|
|
3754
|
+
readonly resultType: "list";
|
|
3755
|
+
readonly pagerGetter: "pager";
|
|
3756
|
+
readonly pathParams: {
|
|
3757
|
+
readonly scope: {
|
|
3758
|
+
readonly description: "应用范围";
|
|
3759
|
+
readonly options: readonly [{
|
|
3760
|
+
readonly value: "products";
|
|
3761
|
+
readonly label: "产品";
|
|
3762
|
+
}];
|
|
3763
|
+
};
|
|
3764
|
+
readonly scopeID: "范围ID";
|
|
3765
|
+
};
|
|
3766
|
+
}, {
|
|
3767
|
+
readonly name: "create";
|
|
3768
|
+
readonly display: "创建应用";
|
|
3769
|
+
readonly type: "create";
|
|
3770
|
+
readonly method: "post";
|
|
3771
|
+
readonly path: "/systems";
|
|
3772
|
+
readonly resultType: "object";
|
|
3773
|
+
readonly requestBody: {
|
|
3774
|
+
readonly required: true;
|
|
3775
|
+
readonly type: "object";
|
|
3776
|
+
readonly schema: {
|
|
3777
|
+
readonly type: "object";
|
|
3778
|
+
readonly properties: {
|
|
3779
|
+
readonly productID: {
|
|
3780
|
+
readonly type: "integer";
|
|
3781
|
+
readonly description: "所属产品";
|
|
3782
|
+
readonly format: "int32";
|
|
3783
|
+
};
|
|
3784
|
+
readonly integrated: {
|
|
3785
|
+
readonly type: "integer";
|
|
3786
|
+
readonly description: "是否集成应用(0 否| 1 是)";
|
|
3787
|
+
readonly format: "int32";
|
|
3788
|
+
};
|
|
3789
|
+
readonly children: {
|
|
3790
|
+
readonly type: "array";
|
|
3791
|
+
readonly items: {
|
|
3792
|
+
readonly type: "string";
|
|
3793
|
+
};
|
|
3794
|
+
readonly description: "集成应用需要包含其他应用,非集成应用传空数组[]";
|
|
3795
|
+
};
|
|
3796
|
+
readonly name: {
|
|
3797
|
+
readonly type: "string";
|
|
3798
|
+
readonly description: "应用名称";
|
|
3799
|
+
};
|
|
3800
|
+
readonly desc: {
|
|
3801
|
+
readonly type: "string";
|
|
3802
|
+
readonly description: "描述";
|
|
3803
|
+
};
|
|
3804
|
+
};
|
|
3805
|
+
readonly required: readonly ["productID", "integrated", "children", "name"];
|
|
3806
|
+
};
|
|
3807
|
+
};
|
|
3808
|
+
}, {
|
|
3809
|
+
readonly name: "update";
|
|
3810
|
+
readonly display: "修改应用";
|
|
3811
|
+
readonly type: "update";
|
|
3812
|
+
readonly method: "put";
|
|
3813
|
+
readonly path: "/systems/{systemID}";
|
|
3814
|
+
readonly resultType: "object";
|
|
3815
|
+
readonly pathParams: {
|
|
3816
|
+
readonly systemID: "应用ID";
|
|
3817
|
+
};
|
|
3818
|
+
readonly requestBody: {
|
|
3819
|
+
readonly required: true;
|
|
3820
|
+
readonly type: "object";
|
|
3821
|
+
readonly schema: {
|
|
3822
|
+
readonly type: "object";
|
|
3823
|
+
readonly properties: {
|
|
3824
|
+
readonly name: {
|
|
3825
|
+
readonly type: "string";
|
|
3826
|
+
readonly description: "应用名称";
|
|
3827
|
+
};
|
|
3828
|
+
readonly children: {
|
|
3829
|
+
readonly type: "array";
|
|
3830
|
+
readonly items: {
|
|
3831
|
+
readonly type: "string";
|
|
3832
|
+
};
|
|
3833
|
+
readonly description: "集成应用需要包含其他应用,非集成应用传空数组[]";
|
|
3834
|
+
};
|
|
3835
|
+
readonly desc: {
|
|
3836
|
+
readonly type: "string";
|
|
3837
|
+
readonly description: "描述";
|
|
3838
|
+
};
|
|
3839
|
+
};
|
|
3840
|
+
readonly required: readonly ["name", "children"];
|
|
3841
|
+
};
|
|
3842
|
+
};
|
|
3843
|
+
}];
|
|
3844
|
+
}, {
|
|
3845
|
+
readonly name: "build";
|
|
3846
|
+
readonly display: "版本";
|
|
3847
|
+
readonly description: "版本管理,支持获取版本列表,支持获取项目/执行下的版本、创建版本/构建、修改版本、删除版本";
|
|
3848
|
+
readonly actions: readonly [{
|
|
3849
|
+
readonly name: "list";
|
|
3850
|
+
readonly display: "获取版本列表,支持获取项目/执行下的版本";
|
|
3851
|
+
readonly type: "list";
|
|
3852
|
+
readonly method: "get";
|
|
3853
|
+
readonly path: "/{scope}/{scopeID}/builds";
|
|
3854
|
+
readonly resultType: "list";
|
|
3855
|
+
readonly pagerGetter: "pager";
|
|
3856
|
+
readonly resultGetter: "builds";
|
|
3857
|
+
readonly pathParams: {
|
|
3858
|
+
readonly scope: {
|
|
3859
|
+
readonly description: "版本范围";
|
|
3860
|
+
readonly options: readonly [{
|
|
3861
|
+
readonly value: "projects";
|
|
3862
|
+
readonly label: "项目";
|
|
3863
|
+
}, {
|
|
3864
|
+
readonly value: "executions";
|
|
3865
|
+
readonly label: "执行";
|
|
3866
|
+
}];
|
|
3867
|
+
};
|
|
3868
|
+
readonly scopeID: "范围ID";
|
|
3869
|
+
};
|
|
3870
|
+
}, {
|
|
3871
|
+
readonly name: "create";
|
|
3872
|
+
readonly display: "创建版本/构建";
|
|
3873
|
+
readonly type: "create";
|
|
3874
|
+
readonly method: "post";
|
|
3875
|
+
readonly path: "/builds";
|
|
3876
|
+
readonly resultType: "object";
|
|
3877
|
+
readonly requestBody: {
|
|
3878
|
+
readonly required: true;
|
|
3879
|
+
readonly type: "object";
|
|
3880
|
+
readonly schema: {
|
|
3881
|
+
readonly type: "object";
|
|
3882
|
+
readonly properties: {
|
|
3883
|
+
readonly executionID: {
|
|
3884
|
+
readonly type: "integer";
|
|
3885
|
+
readonly description: "所属执行/迭代";
|
|
3886
|
+
readonly format: "int32";
|
|
3887
|
+
};
|
|
3888
|
+
readonly product: {
|
|
3889
|
+
readonly type: "integer";
|
|
3890
|
+
readonly description: "所属产品";
|
|
3891
|
+
readonly format: "int32";
|
|
3892
|
+
};
|
|
3893
|
+
readonly name: {
|
|
3894
|
+
readonly type: "string";
|
|
3895
|
+
readonly description: "构建名称";
|
|
3896
|
+
};
|
|
3897
|
+
readonly system: {
|
|
3898
|
+
readonly type: "integer";
|
|
3899
|
+
readonly description: "所属应用";
|
|
3900
|
+
readonly format: "int32";
|
|
3901
|
+
};
|
|
3902
|
+
readonly builder: {
|
|
3903
|
+
readonly type: "string";
|
|
3904
|
+
readonly description: "构建者";
|
|
3905
|
+
};
|
|
3906
|
+
readonly date: {
|
|
3907
|
+
readonly type: "string";
|
|
3908
|
+
readonly description: "打包日期";
|
|
3909
|
+
};
|
|
3910
|
+
readonly scmPath: {
|
|
3911
|
+
readonly type: "string";
|
|
3912
|
+
readonly description: "源代码地址";
|
|
3913
|
+
};
|
|
3914
|
+
readonly filePath: {
|
|
3915
|
+
readonly type: "string";
|
|
3916
|
+
readonly description: "下载地址";
|
|
3917
|
+
};
|
|
3918
|
+
readonly desc: {
|
|
3919
|
+
readonly type: "string";
|
|
3920
|
+
readonly description: "描述";
|
|
3921
|
+
};
|
|
3922
|
+
};
|
|
3923
|
+
readonly required: readonly ["executionID", "product", "name", "system", "builder", "date"];
|
|
3924
|
+
};
|
|
3925
|
+
};
|
|
3926
|
+
}, {
|
|
3927
|
+
readonly name: "update";
|
|
3928
|
+
readonly display: "修改版本";
|
|
3929
|
+
readonly type: "update";
|
|
3930
|
+
readonly method: "put";
|
|
3931
|
+
readonly path: "/builds/{buildID}";
|
|
3932
|
+
readonly resultType: "object";
|
|
3933
|
+
readonly pathParams: {
|
|
3934
|
+
readonly buildID: "版本ID";
|
|
3935
|
+
};
|
|
3936
|
+
readonly requestBody: {
|
|
3937
|
+
readonly required: true;
|
|
3938
|
+
readonly type: "object";
|
|
3939
|
+
readonly schema: {
|
|
3940
|
+
readonly type: "object";
|
|
3941
|
+
readonly properties: {
|
|
3942
|
+
readonly execution: {
|
|
3943
|
+
readonly type: "integer";
|
|
3944
|
+
readonly description: "所属执行/迭代";
|
|
3945
|
+
readonly format: "int32";
|
|
3946
|
+
};
|
|
3947
|
+
readonly product: {
|
|
3948
|
+
readonly type: "integer";
|
|
3949
|
+
readonly description: "所属产品";
|
|
3950
|
+
readonly format: "int32";
|
|
3951
|
+
};
|
|
3952
|
+
readonly name: {
|
|
3953
|
+
readonly type: "string";
|
|
3954
|
+
readonly description: "构建名称";
|
|
3955
|
+
};
|
|
3956
|
+
readonly system: {
|
|
3957
|
+
readonly type: "integer";
|
|
3958
|
+
readonly description: "所属应用";
|
|
3959
|
+
readonly format: "int32";
|
|
3960
|
+
};
|
|
3961
|
+
readonly builder: {
|
|
3962
|
+
readonly type: "string";
|
|
3963
|
+
readonly description: "构建者";
|
|
3964
|
+
};
|
|
3965
|
+
readonly date: {
|
|
3966
|
+
readonly type: "string";
|
|
3967
|
+
readonly description: "打包日期";
|
|
3968
|
+
};
|
|
3969
|
+
readonly scmPath: {
|
|
3970
|
+
readonly type: "string";
|
|
3971
|
+
readonly description: "源代码地址";
|
|
3972
|
+
};
|
|
3973
|
+
readonly filePath: {
|
|
3974
|
+
readonly type: "string";
|
|
3975
|
+
readonly description: "下载地址";
|
|
3976
|
+
};
|
|
3977
|
+
readonly desc: {
|
|
3978
|
+
readonly type: "string";
|
|
3979
|
+
readonly description: "描述";
|
|
3980
|
+
};
|
|
3981
|
+
};
|
|
3982
|
+
readonly required: readonly ["execution", "product", "name", "system", "builder", "date"];
|
|
3983
|
+
};
|
|
3984
|
+
};
|
|
3985
|
+
}, {
|
|
3986
|
+
readonly name: "delete";
|
|
3987
|
+
readonly display: "删除版本";
|
|
3988
|
+
readonly type: "delete";
|
|
3989
|
+
readonly method: "delete";
|
|
3990
|
+
readonly path: "/builds/{buildID}";
|
|
3991
|
+
readonly resultType: "text";
|
|
3992
|
+
readonly pathParams: {
|
|
3993
|
+
readonly buildID: "版本ID";
|
|
3994
|
+
};
|
|
3995
|
+
readonly render: "action";
|
|
3996
|
+
}];
|
|
3997
|
+
}, {
|
|
3998
|
+
readonly name: "testtask";
|
|
3999
|
+
readonly display: "测试单";
|
|
4000
|
+
readonly description: "测试单管理,支持获取测试单列表,支持获取产品/项目/执行下的测试单、创建测试单、修改测试单、删除测试单";
|
|
4001
|
+
readonly actions: readonly [{
|
|
4002
|
+
readonly name: "list";
|
|
4003
|
+
readonly display: "获取测试单列表,支持获取产品/项目/执行下的测试单";
|
|
4004
|
+
readonly type: "list";
|
|
4005
|
+
readonly method: "get";
|
|
4006
|
+
readonly path: "/{scope}/{scopeID}/testtasks";
|
|
4007
|
+
readonly resultType: "list";
|
|
4008
|
+
readonly pagerGetter: "pager";
|
|
4009
|
+
readonly resultGetter: "testtasks";
|
|
4010
|
+
readonly pathParams: {
|
|
4011
|
+
readonly scope: {
|
|
4012
|
+
readonly description: "测试单范围";
|
|
4013
|
+
readonly options: readonly [{
|
|
4014
|
+
readonly value: "products";
|
|
4015
|
+
readonly label: "产品";
|
|
4016
|
+
}, {
|
|
4017
|
+
readonly value: "projects";
|
|
4018
|
+
readonly label: "项目";
|
|
4019
|
+
}, {
|
|
4020
|
+
readonly value: "executions";
|
|
4021
|
+
readonly label: "执行";
|
|
4022
|
+
}];
|
|
4023
|
+
};
|
|
4024
|
+
readonly scopeID: "范围ID";
|
|
4025
|
+
};
|
|
4026
|
+
}, {
|
|
4027
|
+
readonly name: "create";
|
|
4028
|
+
readonly display: "创建测试单";
|
|
4029
|
+
readonly type: "create";
|
|
4030
|
+
readonly method: "post";
|
|
4031
|
+
readonly path: "/testtasks";
|
|
4032
|
+
readonly resultType: "object";
|
|
4033
|
+
readonly requestBody: {
|
|
4034
|
+
readonly required: true;
|
|
4035
|
+
readonly type: "object";
|
|
4036
|
+
readonly schema: {
|
|
4037
|
+
readonly type: "object";
|
|
4038
|
+
readonly properties: {
|
|
4039
|
+
readonly productID: {
|
|
4040
|
+
readonly type: "integer";
|
|
4041
|
+
readonly description: "所属产品ID";
|
|
4042
|
+
readonly format: "int32";
|
|
4043
|
+
};
|
|
4044
|
+
readonly name: {
|
|
4045
|
+
readonly type: "string";
|
|
4046
|
+
readonly description: "测试单名称";
|
|
4047
|
+
};
|
|
4048
|
+
readonly build: {
|
|
4049
|
+
readonly type: "integer";
|
|
4050
|
+
readonly description: "提测构建/版本";
|
|
4051
|
+
readonly format: "int32";
|
|
4052
|
+
};
|
|
4053
|
+
readonly execution: {
|
|
4054
|
+
readonly type: "integer";
|
|
4055
|
+
readonly description: "所属执行";
|
|
4056
|
+
readonly format: "int32";
|
|
4057
|
+
};
|
|
4058
|
+
readonly type: {
|
|
4059
|
+
readonly type: "array";
|
|
4060
|
+
readonly items: {
|
|
4061
|
+
readonly type: "string";
|
|
4062
|
+
};
|
|
4063
|
+
readonly description: "类型(integrate 集成测试 | system 系统测试 | acceptance 验收测试 | performance 性能测试 | safety 安全测试)";
|
|
4064
|
+
};
|
|
4065
|
+
readonly owner: {
|
|
4066
|
+
readonly type: "string";
|
|
4067
|
+
readonly description: "负责人";
|
|
4068
|
+
};
|
|
4069
|
+
readonly status: {
|
|
4070
|
+
readonly type: "string";
|
|
4071
|
+
readonly description: "状态(wait 未开始 | doing 进行中 | done 已关闭 | blocked 被阻塞)";
|
|
4072
|
+
};
|
|
4073
|
+
readonly begin: {
|
|
4074
|
+
readonly type: "string";
|
|
4075
|
+
readonly description: "开始日期";
|
|
4076
|
+
};
|
|
4077
|
+
readonly end: {
|
|
4078
|
+
readonly type: "string";
|
|
4079
|
+
readonly description: "结束日期";
|
|
4080
|
+
};
|
|
4081
|
+
readonly desc: {
|
|
4082
|
+
readonly type: "string";
|
|
4083
|
+
readonly description: "描述";
|
|
4084
|
+
};
|
|
4085
|
+
};
|
|
4086
|
+
readonly required: readonly ["productID", "name", "build", "begin", "end"];
|
|
4087
|
+
};
|
|
4088
|
+
};
|
|
4089
|
+
}, {
|
|
4090
|
+
readonly name: "update";
|
|
4091
|
+
readonly display: "修改测试单";
|
|
4092
|
+
readonly type: "update";
|
|
4093
|
+
readonly method: "put";
|
|
4094
|
+
readonly path: "/testtasks/{testtaskID}";
|
|
4095
|
+
readonly resultType: "object";
|
|
4096
|
+
readonly pathParams: {
|
|
4097
|
+
readonly testtaskID: "测试单ID";
|
|
4098
|
+
};
|
|
4099
|
+
readonly requestBody: {
|
|
4100
|
+
readonly required: true;
|
|
4101
|
+
readonly type: "object";
|
|
4102
|
+
readonly schema: {
|
|
4103
|
+
readonly type: "object";
|
|
4104
|
+
readonly properties: {
|
|
4105
|
+
readonly name: {
|
|
4106
|
+
readonly type: "string";
|
|
4107
|
+
readonly description: "测试单名称";
|
|
4108
|
+
};
|
|
4109
|
+
readonly build: {
|
|
4110
|
+
readonly type: "integer";
|
|
4111
|
+
readonly description: "提测构建/版本";
|
|
4112
|
+
readonly format: "int32";
|
|
4113
|
+
};
|
|
4114
|
+
readonly execution: {
|
|
4115
|
+
readonly type: "integer";
|
|
4116
|
+
readonly description: "所属执行";
|
|
4117
|
+
readonly format: "int32";
|
|
4118
|
+
};
|
|
4119
|
+
readonly type: {
|
|
4120
|
+
readonly type: "array";
|
|
4121
|
+
readonly items: {
|
|
4122
|
+
readonly type: "string";
|
|
4123
|
+
};
|
|
4124
|
+
readonly description: "类型(integrate 集成测试 | system 系统测试 | acceptance 验收测试 | performance 性能测试 | safety 安全测试)";
|
|
4125
|
+
};
|
|
4126
|
+
readonly owner: {
|
|
4127
|
+
readonly type: "string";
|
|
4128
|
+
readonly description: "负责人";
|
|
4129
|
+
};
|
|
4130
|
+
readonly status: {
|
|
4131
|
+
readonly type: "string";
|
|
4132
|
+
readonly description: "状态(wait 未开始 | doing 进行中 | done 已关闭 | blocked 被阻塞)";
|
|
4133
|
+
};
|
|
4134
|
+
readonly begin: {
|
|
4135
|
+
readonly type: "string";
|
|
4136
|
+
readonly description: "开始日期";
|
|
4137
|
+
};
|
|
4138
|
+
readonly end: {
|
|
4139
|
+
readonly type: "string";
|
|
4140
|
+
readonly description: "结束日期";
|
|
4141
|
+
};
|
|
4142
|
+
readonly desc: {
|
|
4143
|
+
readonly type: "string";
|
|
4144
|
+
readonly description: "描述";
|
|
4145
|
+
};
|
|
4146
|
+
};
|
|
4147
|
+
readonly required: readonly ["name", "build", "begin", "end"];
|
|
4148
|
+
};
|
|
4149
|
+
};
|
|
4150
|
+
}, {
|
|
4151
|
+
readonly name: "delete";
|
|
4152
|
+
readonly display: "删除测试单";
|
|
4153
|
+
readonly type: "delete";
|
|
4154
|
+
readonly method: "delete";
|
|
4155
|
+
readonly path: "/testtasks/{testtaskID}";
|
|
4156
|
+
readonly resultType: "text";
|
|
4157
|
+
readonly pathParams: {
|
|
4158
|
+
readonly testtaskID: "测试单ID";
|
|
4159
|
+
};
|
|
4160
|
+
readonly render: "action";
|
|
4161
|
+
}];
|
|
4162
|
+
}, {
|
|
4163
|
+
readonly name: "release";
|
|
4164
|
+
readonly display: "发布";
|
|
4165
|
+
readonly description: "发布管理,支持获取发布列表,支持获取产品下的发布、创建发布、修改发布、删除发布";
|
|
4166
|
+
readonly actions: readonly [{
|
|
4167
|
+
readonly name: "list";
|
|
4168
|
+
readonly display: "获取发布列表,支持获取产品下的发布";
|
|
4169
|
+
readonly type: "list";
|
|
4170
|
+
readonly method: "get";
|
|
4171
|
+
readonly path: "/{scope}/{scopeID}/releases";
|
|
4172
|
+
readonly resultType: "list";
|
|
4173
|
+
readonly pagerGetter: "pager";
|
|
4174
|
+
readonly resultGetter: "releases";
|
|
4175
|
+
readonly pathParams: {
|
|
4176
|
+
readonly scope: {
|
|
4177
|
+
readonly description: "发布范围";
|
|
4178
|
+
readonly options: readonly [{
|
|
4179
|
+
readonly value: "products";
|
|
4180
|
+
readonly label: "产品";
|
|
4181
|
+
}];
|
|
4182
|
+
};
|
|
4183
|
+
readonly scopeID: "范围ID";
|
|
4184
|
+
};
|
|
4185
|
+
}, {
|
|
4186
|
+
readonly name: "create";
|
|
4187
|
+
readonly display: "创建发布";
|
|
4188
|
+
readonly type: "create";
|
|
4189
|
+
readonly method: "post";
|
|
4190
|
+
readonly path: "/releases";
|
|
4191
|
+
readonly resultType: "object";
|
|
4192
|
+
readonly requestBody: {
|
|
4193
|
+
readonly required: true;
|
|
4194
|
+
readonly type: "object";
|
|
4195
|
+
readonly schema: {
|
|
4196
|
+
readonly type: "object";
|
|
4197
|
+
readonly properties: {
|
|
4198
|
+
readonly productID: {
|
|
4199
|
+
readonly type: "integer";
|
|
4200
|
+
readonly description: "所属产品";
|
|
4201
|
+
readonly format: "int32";
|
|
4202
|
+
};
|
|
4203
|
+
readonly system: {
|
|
4204
|
+
readonly type: "integer";
|
|
4205
|
+
readonly description: "所属应用";
|
|
4206
|
+
readonly format: "int32";
|
|
4207
|
+
};
|
|
4208
|
+
readonly name: {
|
|
4209
|
+
readonly type: "string";
|
|
4210
|
+
readonly description: "应用版本号";
|
|
4211
|
+
};
|
|
4212
|
+
readonly build: {
|
|
4213
|
+
readonly type: "array";
|
|
4214
|
+
readonly items: {
|
|
4215
|
+
readonly type: "string";
|
|
4216
|
+
};
|
|
4217
|
+
readonly description: "包含构建";
|
|
4218
|
+
};
|
|
4219
|
+
readonly status: {
|
|
4220
|
+
readonly type: "string";
|
|
4221
|
+
readonly description: "状态(wait 未开始 | normal 已发布 | fail 发布失败 | terminate 停止维护)";
|
|
4222
|
+
};
|
|
4223
|
+
readonly date: {
|
|
4224
|
+
readonly type: "string";
|
|
4225
|
+
readonly description: "计划发布日期";
|
|
4226
|
+
};
|
|
4227
|
+
readonly desc: {
|
|
4228
|
+
readonly type: "string";
|
|
4229
|
+
readonly description: "描述";
|
|
4230
|
+
};
|
|
4231
|
+
};
|
|
4232
|
+
readonly required: readonly ["productID", "system", "name", "build", "date"];
|
|
4233
|
+
};
|
|
4234
|
+
};
|
|
4235
|
+
}, {
|
|
4236
|
+
readonly name: "update";
|
|
4237
|
+
readonly display: "修改发布";
|
|
4238
|
+
readonly type: "update";
|
|
4239
|
+
readonly method: "put";
|
|
4240
|
+
readonly path: "/releases/{releasID}";
|
|
4241
|
+
readonly resultType: "object";
|
|
4242
|
+
readonly pathParams: {
|
|
4243
|
+
readonly releasID: "发布ID";
|
|
4244
|
+
};
|
|
4245
|
+
readonly requestBody: {
|
|
4246
|
+
readonly required: true;
|
|
4247
|
+
readonly type: "object";
|
|
4248
|
+
readonly schema: {
|
|
4249
|
+
readonly type: "object";
|
|
4250
|
+
readonly properties: {
|
|
4251
|
+
readonly system: {
|
|
4252
|
+
readonly type: "integer";
|
|
4253
|
+
readonly description: "所属应用";
|
|
4254
|
+
readonly format: "int32";
|
|
4255
|
+
};
|
|
4256
|
+
readonly name: {
|
|
4257
|
+
readonly type: "string";
|
|
4258
|
+
readonly description: "应用版本号";
|
|
4259
|
+
};
|
|
4260
|
+
readonly build: {
|
|
4261
|
+
readonly type: "array";
|
|
4262
|
+
readonly items: {
|
|
4263
|
+
readonly type: "string";
|
|
4264
|
+
};
|
|
4265
|
+
readonly description: "包含构建";
|
|
4266
|
+
};
|
|
4267
|
+
readonly status: {
|
|
4268
|
+
readonly type: "string";
|
|
4269
|
+
readonly description: "状态(wait 未开始 | normal 已发布 | fail 发布失败 | terminate 停止维护)";
|
|
4270
|
+
};
|
|
4271
|
+
readonly date: {
|
|
4272
|
+
readonly type: "string";
|
|
4273
|
+
readonly description: "计划发布日期";
|
|
4274
|
+
};
|
|
4275
|
+
readonly desc: {
|
|
4276
|
+
readonly type: "string";
|
|
4277
|
+
readonly description: "描述";
|
|
4278
|
+
};
|
|
4279
|
+
};
|
|
4280
|
+
readonly required: readonly ["system", "name", "build", "date"];
|
|
4281
|
+
};
|
|
4282
|
+
};
|
|
4283
|
+
}, {
|
|
4284
|
+
readonly name: "delete";
|
|
4285
|
+
readonly display: "删除发布";
|
|
4286
|
+
readonly type: "delete";
|
|
4287
|
+
readonly method: "delete";
|
|
4288
|
+
readonly path: "/releases/{releasID}";
|
|
4289
|
+
readonly resultType: "text";
|
|
4290
|
+
readonly pathParams: {
|
|
4291
|
+
readonly releasID: "发布ID";
|
|
4292
|
+
};
|
|
4293
|
+
readonly render: "action";
|
|
4294
|
+
}];
|
|
4295
|
+
}, {
|
|
4296
|
+
readonly name: "file";
|
|
4297
|
+
readonly display: "附件";
|
|
4298
|
+
readonly description: "附件管理,支持编辑附件,修改附件的名称、删除附件";
|
|
4299
|
+
readonly actions: readonly [{
|
|
4300
|
+
readonly name: "create";
|
|
4301
|
+
readonly display: "编辑附件,修改附件的名称";
|
|
4302
|
+
readonly type: "create";
|
|
4303
|
+
readonly method: "post";
|
|
4304
|
+
readonly path: "/files";
|
|
4305
|
+
readonly resultType: "object";
|
|
4306
|
+
readonly requestBody: {
|
|
4307
|
+
readonly required: true;
|
|
4308
|
+
readonly type: "object";
|
|
4309
|
+
readonly schema: {
|
|
4310
|
+
readonly type: "object";
|
|
4311
|
+
readonly properties: {
|
|
4312
|
+
readonly fileName: {
|
|
4313
|
+
readonly type: "string";
|
|
4314
|
+
readonly description: "附件名称";
|
|
4315
|
+
};
|
|
4316
|
+
};
|
|
4317
|
+
readonly required: readonly ["fileName"];
|
|
4318
|
+
};
|
|
4319
|
+
};
|
|
4320
|
+
}, {
|
|
4321
|
+
readonly name: "delete";
|
|
4322
|
+
readonly display: "删除附件";
|
|
4323
|
+
readonly type: "delete";
|
|
4324
|
+
readonly method: "delete";
|
|
4325
|
+
readonly path: "/files/{fileID}";
|
|
4326
|
+
readonly resultType: "text";
|
|
4327
|
+
readonly pathParams: {
|
|
4328
|
+
readonly fileID: "附件ID";
|
|
4329
|
+
};
|
|
4330
|
+
readonly render: "action";
|
|
4331
|
+
}];
|
|
4332
|
+
}];
|
|
5
4333
|
/** {@link defineModules} 的选项。 */
|
|
6
4334
|
export interface DefineModulesOptions {
|
|
7
4335
|
/**
|