云服务器内容精选

  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 records Array of WorkitemStatusRecords objects 操作历史 total Integer 总数 表5 WorkitemStatusRecords 参数 参数类型 描述 work_item_record_id String 工作项的记录id,一个工作项对应一条记录 最小长度:32 最大长度:32 work_item_id String 工作项id project_id String devcloud项目的32位id 最小长度:32 最大长度:32 work_item_statuses Array of WorkitemStatus objects 操作历史 表6 WorkitemStatus 参数 参数类型 描述 id String 工作项状态变更记录的id,每次变更产生一条新的记录id 最小长度:1 最大长度:32 status status object 工作项的状态 表7 status 参数 参数类型 描述 id String 工作项的状态id 最小长度:1 最大长度:32 name String 状态名称 最小长度:1 最大长度:60 type String 工作项状态的类型, BACK LOG ( "初始化"), READY("待启动"), IN_PROGRESS("进行中"), COMPLETE("已完成"), DONE("已结束"), description String 工作项状态的描述 parent_status_id String 工作项状态的父状态id 最小长度:1 最大长度:32 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码
  • URI GET /v4/projects/{project_id}/work-items/status-records 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String devcloud项目的32位id 最小长度:32 最大长度:32 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量 从0开始 最小值:0 缺省值:0 limit 否 Integer 每页数量 最小1,最大100 最小值:1 最大值:100 缺省值:100
  • 响应示例 状态码: 200 OK { "records" : [ { "work_item_record_id" : "7401906a85de466c81fd90e22824eb19", "work_item_id" : "4633454879781163008", "project_id" : "526cefde62004de2b62b5e8dd2c2b3af", "work_item_statuses" : [ { "id" : "7401906a85de466c81fd90e22824eb19", "status" : { "id" : "d25fe91f7f6b489db5f804e66ac3b360", "name" : "7401906a85de466c81fd90e22824eb19", "type" : "BACKLOG", "description" : "demo", "parent_status_id" : "7401906a85de466c81fd90e22824aaaa" } } ] } ], "total" : 1 }
  • 请求示例 Post https://{endpoint}/v4/projects/e2da96a5d2c845e284f0ad47f8ca8cb2/issues/123456/work-hours { "start_date" : "2023-05-15", "due_date" : "2023-05-15", "work_hours" : 2.0, "work_hours_type_id" : 21 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 added_work_hours Array of added_work_hours objects 已添加的工时列表 表5 added_work_hours 参数 参数类型 描述 work_hours_id String 工时id issue_id Integer 添加工时对应的工作项id user_name String 工时添加用户的用户名 user_nick_name String 工时添加用户的用户昵称 work_date String 工时日期 年-月-日 work_hours Double 工时数 work_hours_type_name String 工时类型名称 (项目预设工时类型id及名称对照:21:研发设计,22:后端开发,23:前端开发(Web),24:前端开发(小程序),25:前端开发(App), 26:测试验证,27:缺陷修复,28:UI设计,29:会议,30:公共事务,31:培训,32:研究,33:其它,34:调休请假) 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码
  • 响应示例 状态码: 200 ok { "added_work_hours" : [ { "work_hours_id" : "7da14cf9f3c111eda5a5fa163ec9f6c1", "issue_id" : 123456, "user_name" : "user_name", "user_nick_name" : "O_O", "work_date" : "2023-05-15", "work_hours" : "2.0", "work_hours_type_name" : "研发设计" } ] }
  • URI POST /v4/projects/{project_id}/issues/{issue_id}/work-hours 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数解释:项目的32位uuid,项目唯一标识,可以通过ListProjectsV4接口查询项目列表 约束限制:正则表达式, ^[A-Za-z0-9]{32}$ 取值范围:字符串,最小长度:32,最大长度:32 默认取值:不涉及 issue_id 是 Integer 参数解释:工作项id,可通过ListIssuesV4接口高级查询工作项 约束限制:正则表达式,[0-9]{1,10}$ 取值范围:最小长度:1,最大长度:10 默认取值:不涉及
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 参数解释:用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 约束限制:不涉及 取值范围:最小长度:10,最大长度:32768 默认取值:不涉及 表3 请求Body参数 参数 是否必选 参数类型 描述 start_date 是 String 参数解释:工时开始日期,年-月-日 约束限制:正则表达式, ^\d{4}-\d{2}-\d{2}$ 取值范围:匹配格式为 YYYY-MM-DD 的日期字符串,MM 是两位数的月份限制取值01-12,DD是两位数的日期限制取值01-31 默认取值:不涉及 due_date 是 String 参数解释:工时结束日期,年-月-日 约束限制:正则表达式, ^\d{4}-\d{2}-\d{2}$ 取值范围:匹配格式为 YYYY-MM-DD 的日期字符串,MM 是两位数的月份限制取值01-12,DD是两位数的日期限制取值01-31 默认取值:不涉及 work_hours 是 Double 参数解释:工时总数(若工时日期范围包含多天,单日工时将设为“工时总数/天数”) 约束限制:不涉及 取值范围:最小值:0.0,最大值:100000000 默认取值:不涉及 work_hours_type_id 否 Integer 参数解释:工时类型id (项目预设工时类型id及名称对照:21:研发设计,22:后端开发,23:前端开发(Web),24:前端开发(小程序),25:前端开发(App), 26:测试验证,27:缺陷修复,28:UI设计,29:会议,30:公共事务,31:培训,32:研究,33:其它,34:调休请假) 约束限制:不涉及 取值范围:最小值:21,最大值:34 默认取值:不涉及
  • 响应示例 状态码: 200 { "issues" : [ { "subject" : "demo", "issue_id" : 1234, "project" : { "project_name" : "demo", "project_id" : "58d9050550c847c89885c1797a718b0c" }, "user" : { "user_num_id" : 4091, "user_id" : "a360371833bf4c558f796fd707b44daf", "user_name" : "demo_user_name_xiongzhitest001", "nick_name" : "bear" }, "status" : { "id" : "1", "name" : "未开始" } } ], "total" : 12 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 issues Array of AssociateIssueDetail objects 关联的工作项列表 total Integer 总数 表5 AssociateIssueDetail 参数 参数类型 描述 subject String 工作项标题 issue_id Integer 工作项ID project SimpleProject object user SimpleUser object status StatusVo object 状态 表6 SimpleProject 参数 参数类型 描述 project_name String 项目名称 project_id String 项目id 表7 SimpleUser 参数 参数类型 描述 user_num_id Integer 用户数字id user_id String 用户uuid user_name String 账号名 nick_name String 用户昵称 表8 StatusVo 参数 参数类型 描述 id String 状态id name String 状态id对应的值 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 401 表10 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码
  • URI GET /v4/projects/{project_id}/issues/{issue_id}/associated-issues 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String devcloud项目的32位id 最小长度:32 最大长度:32 issue_id 是 Integer 工作项ID 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页数量 offset 否 Integer 偏移量
  • 响应示例 状态码: 200 OK { "work_items" : [ { "id" : "4633454879781163008", "description" : "demo", "actual_work_hours" : 10, "assigned_user" : { "id" : "665b542eb4c14b53a15ead449f28b0ba", "name" : "demo_user_name", "nick_name" : "demo" }, "author" : { "id" : "665b542eb4c14b53a15ead449f28b0ba", "name" : "demo_user_name", "nick_name" : "demo" }, "begin_time" : "1590940800000", "created_time" : "1590940800000", "tags" : [ { "id" : "456", "name" : "tagdemo" } ], "developer" : { "id" : "665b542eb4c14b53a15ead449f28b0ba", "name" : "demo_user_name", "nick_name" : "demo" }, "assigned_cc_user" : [ { "id" : "665b542eb4c14b53a15ead449f28b0ba", "name" : "demo_user_name", "nick_name" : "demo" } ], "discover_version" : "ProjectMan 8.0.0", "end_time" : "1590940800000", "done_ratio" : "10%", "expected_work_hours" : 9, "order" : "1", "parent_work_item_id" : "4633454879781163001", "release_version" : "ProjectMan 8.0.0", "story_point" : "0", "domain" : { "id" : "14", "name" : "性能" }, "iteration" : { "id" : "456", "name" : "迭代1" }, "module" : { "id" : "456", "name" : "Project" }, "priority" : "低", "severity" : "一般", "status" : { "id" : "d25fe91f7f6b489db5f804e66ac3b360", "name" : "新建" }, "subject" : "demosubject", "updated_time" : "1595832054113", "sequence" : "5500756", "important" : "提示", "custom_fields" : [ { "field_id" : "d25fe91f7f6b489db5f804e66a0", "field_name" : "customField", "field_type" : "Select", "field_option_source" : "USER", "value" : "{\"id\":\"d25fe91f7f6b489db5f804e66a0\",\"name\":\"devcloud_test001\",\"nick_name\":\"demo\"}" } ] } ], "total" : 1 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 work_items Array of Workitems objects 工作项 total Integer 总数 表5 Workitems 参数 参数类型 描述 id String 工作项id description String 工作项描述 actual_work_hours Double 实际工时 assigned_user WorkitemUser object author WorkitemUser object begin_time String 工作项开始时间 created_time String 创建时间 tags Array of tags objects 标签 developer WorkitemUser object assigned_cc_user Array of WorkitemUser objects 抄送人 discover_version String 发现问题的版本 end_time String 工作项结束时间 done_ratio String 工作项进度值 expected_work_hours Double 预计工时 order String 顺序 parent_work_item_id String 父工作项的id release_version String 发布的版本 story_point String 故事点 domain domain object id, 领域 14, '性能', 15, '功能', 16, '可靠性' 17, '网络安全' 18, '可维护性' 19, '其他DFX' 20, '可用性' 其他 iteration iteration object 迭代 module module object 模块 priority String 工作项优先级 severity String 严重的程度 "提示", "一般", "严重", "致命" status status object 工作项状态 subject String 工作项标题 updated_time String 更新时间 sequence String 工作项编号 important String 重要程度 "关键", "重要", "一般", "提示" custom_fields Array of WorkitemCustomField objects 用户自定义字段 表6 tags 参数 参数类型 描述 id String 标签id name String 标签名 表7 WorkitemUser 参数 参数类型 描述 id String 用户32位uuid name String 用户名 nick_name String 昵称 表8 domain 参数 参数类型 描述 id String 领域id name String 领域 表9 iteration 参数 参数类型 描述 id String 迭代id name String 迭代名 表10 module 参数 参数类型 描述 id String 模块id name String 模块 表11 status 参数 参数类型 描述 id String 状态id name String 状态名称 表12 WorkitemCustomField 参数 参数类型 描述 field_id String 自定义字段id field_name String 自定义字段名称 field_type String 自定义字段类型, "Date","Number","DateTime", "MultiLineText","SingleLineText", "Select", "Checkbox" field_option_source String 自定义字段的选项源,CUSTOM,USER,DOMAIN,ITERATION,MODULE,TAG value String 自定义字段值, (field_type为Date,Number,DateTime时,field_option_source为空,value值是数字的字符串), (field_type为MultiLineText,SingleLineText时,field_option_source为空,value值是文本字符串), (field_type为Select ,field_option_source为CUSTOM时,value值是文本字符串) (field_type为Select ,field_option_source为USER,DOMAIN,ITERATION,MODULE,TAG时,value值是Json格式{}), (field_type为Checkbox ,field_option_source为CUSTOM时,value值是字符串数组["aaa"]), (field_type为"Checkbox" ,field_option_source为USER,DOMAIN,ITERATION,MODULE,TAG时,value值是Json的数组[{},{}]) 状态码: 400 表13 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码 状态码: 401 表14 响应Body参数 参数 参数类型 描述 error_msg String 错误描述 error_code String 错误码
  • URI GET /v4/projects/{project_id}/work-items 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String devcloud项目的32位id 最小长度:32 最大长度:32 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量 从0开始 最小值:0 缺省值:0 limit 否 Integer 每页数量 最小1,最大100 最小值:1 最大值:100 缺省值:100 created_time_interval 否 String 创建工作项的时间(查询的起始时间,查询的结束时间)
  • 在工作项详情页中管理工作项 在编辑工作项详情页面,您除了可以修改工作项的描述、优先级、责任人等,还可以添加标签、添加附件、关联工作项、查看评审记录、添加工时和查看操作历史。 图2 工作项详情页 表2 详情页相关管理操作 操作项 操作步骤 备注 编辑工作项 在工作项详情页中单击需要修改的字段取值框,在输入框中输入目标值或在下拉框中选择目标值,可即时保存已修改内容。 操作成员需拥有工作项的“编辑”权限。 修改工作项状态 进入工作项详情页面,单击工作项“状态”字段,可根据需要将工作项流转至目标状态。 操作成员需拥有工作项的“状态设置”权限。 上传附件 附件类型支持图片、工作簿、文稿、文本文件等类型。每个工作项可容纳的附件个数不超过100个,附件总容量不得超过50MB。 进入工作项详情,单击“附件”页签。 单击“点击或拖拽文件到此处上传”,选择本地文件,将文件上传至工作项中作为附件。 支持将本地文件直接拖拽到输入框中。当上传进度条达到100%,系统提示附件上传成功。 将鼠标放在上传成功的文件上,会显示可执行的操作。 单击,可以下载文件到本地存放。 单击,可以删除上传的文件。 操作成员需拥有工作项的“上传附件”权限。 添加并查看关联项 工作项可以与项目内的其它类型工作项建立关联关系。 进入工作项详情页面,选择“关联项”页签。 完成关联操作。 父工作项:工作项所归属的父工作项。 说明: FE可以关联Epic。 US可以关联FE。 Task可以关联US。 Bug可以关联US。 子工作项:当前工作项分解的子工作项。 支持批量分解,一次最多只能分解10条。默认一条,且不能删除。 1. 单击“分解”,弹出“分解子工作项”窗口。 2. 输入子工作项的信息。单击图标,可以展开及配置更多信息。 3. 单击“确定”,子工作项分解成功。 该子工作项会自动显示在工作项列表中所属父工作项下。 4. (可选)单击,可取消关联。 说明: 仅Epic、FE、US类型工作项才支持分解子工作项操作。 关联工作项:与本项目中其他类型的工作项,直接建立关联关系。 Epic、US、Task工作项中支持新建和关联Epic、FE、US、Task、Bug,新建操作可参见新建工作项。 FE、Bug工作项中支持关联Epic、RR、FE、US、Task、Bug。 协同缺陷:当前项目的缺陷可以下发给其他项目。 支持批量下发,一次最多只能下发10条。默认一条,且不能删除。 1. 单击“协同下发”,弹出“协同下发”窗口。 2. 输入缺陷下发的基本信息。单击图标,可以展开及配置更多信息。 3. 单击“确定”,缺陷下发成功。 4. (可选)单击,可取消关联。 文件:当前工作项相关的文件。 选择与当前工作项相关联的文件,支持上传本地文件。 Wiki:当前工作项相关的Wiki。 选择与当前工作项相关联的Wiki,支持新建Wiki。 代码提交记录:当前工作项相关的代码提交记录。 仅当代码提交时,关联了当前工作项单号,才会显示相关信息。 代码分支:当前工作项相关的代码分支。 仅当代码分支关联了当前工作项单号,才会显示相关信息。 测试用例:当前工作项相关的测试用例。 说明: 仅Epic、FE、US、Task类型工作项支持关联测试用例。 在测试管理中选择与测试用例相关联的工作项。 测试计划:当前工作项相关的测试计划。 说明: 仅Task类型工作项支持关联测试用例。 选择与本缺陷相关联的测试计划。 操作成员需拥有工作项的“分解/关联/取消关联子工作项”、“关联/取消关联父工作项”、“新建/关联/取消关联工作项”、“关联/取消关联文件”、“关联/取消关联wiki”权限。 添加工时 进入工作项详情页面,选择“工时”页签。 单击“新增工时”,弹出“新增工时”窗口。 填写工时信息。 工时的结束日期不能早于开始日期。 是否勾选“包含周末”,如果不勾选,则工时记录中不会生成周末的记录。 “工时”可以选择“总数”或“每天”。 “工时类型”包括后端开发、前端开发、UI设计、调休请假、缺陷修复、公共事务等,还支持自定义取值,具体步骤参考添加IPD自运营/云服务类项目工作项的工时类型 单击“确定”,工时新增成功。 系统会自动根据填写的工时日期和工时天数生成对应的记录。 工时支持编辑、删除操作。 添加工时操作,成员需拥有工作项的“新增工时”权限。 编辑、删除工时操作默认是谁添加就谁可以操作,项目管理员默认可以编辑、删除所有工时数据。 查看历史记录 历史记录展示了用户的所有操作日志,包括:创建、状态流转、发起评审、关联工作项、新增工时等。 进入工作项详情页面。 选择“历史记录”页签,查看工作项所有的修改操作。 单击或,可以按操作时间的正序或倒序查看历史记录信息。 通过设置查询条件,可以查询到符合条件的历史记录。 操作成员需拥有工作项的“查看”权限。 给工作项打标签 进入工作项详情页面,单击页面上方“标签”后面的,选择“新建标签”。 添加的标签显示在“标签”中。 在弹出的“新建标签”窗口中,输入“标签名称”和选择“标签颜色”。 单击“确定”,标签新建成功。 在原始需求列表中对应需求的编号后会显示新增的标签。 (可选)隐藏标签。 单击“标签”后面的,在弹出窗口中去掉标签的√,则会隐藏标签。 图3 隐藏标签01 将鼠标放在标签名称上,单击,则会隐藏标签。 图4 隐藏标签02 说明: 当有多个工作项需要添加标签时,您可以选择在工作项列表中勾选需要添加标签的需求,单击页面下方的“批量编辑”,选择“标签”字段进行添加。 操作成员需拥工作项的“编辑”权限。 添加评论 进入工作项详情页面。 在“详情”页签,单击“评论”输入框。 图5 添加评论 输入评论内容。 评论支持上传图片、输入链接、关联工作项、@项目成员等操作。 单击“发表”,评论成功。 发表后的评论支持回复、编辑、置顶、删除操作。 操作成员需拥有工作项的“查看”权限。