创建变更评审单
功能介绍
创建变更评审单,当变更对象CO为RR/Bug时,CO的approver字段值取变更对象审批人接口(https://{endpoint}/v1/ipdprojectservice/projects/{project_id}/review/issues/{issue_id}/approvers)的返回体中的id
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v1/ipdprojectservice/projects/{project_id}/review
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数解释:项目的32位uuid,项目唯一标识,可以通过查询项目列表接口获取,响应消息体中的project_id字段的值就是项目ID 约束限制:正则表达式,^[A-Za-z0-9]{32}$ 默认取值:不涉及 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
category |
是 |
String |
评审单类别,只支持CR |
title |
是 |
String |
评审单标题 |
description |
否 |
String |
评审单描述,列表接口不返回描述信息 |
need_approval |
是 |
Boolean |
评审单是否需要审批人审批,可选值:true |
status |
是 |
ReviewStatusEntity object |
评审单状态,可选值:ToBeReviewed |
cc |
否 |
Array of ReviewCreateUserEntity objects |
抄送人列表 |
cos |
是 |
Array of COCreateEntity objects |
评审对象列表 |
plan_end_date |
否 |
String |
计划完成日期时间戳,不可早于计划开始日期 |
plan_start_date |
否 |
String |
计划开始日期时间戳,不可晚于计划完成日期 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
code |
是 |
String |
状态唯一标识,可选值为ToBeReviewed,ToBeApproved ToBeReviewed:待评审 ToBeApproved:待决策 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
issue_id |
是 |
String |
变更对象关联的工作项Id |
issue_number |
是 |
String |
变更对象关联的工作项编号 |
issue_category |
是 |
String |
变更对象工作项类型,值范围:RR/SF/IR/Bug |
change_type |
是 |
String |
变更类型: Modify:修改 Delete:删除 |
before_change |
是 |
String |
变更对象修改前内容 |
after_change |
是 |
String |
变更对象修改后内容,格式为json,必须包含execute节点,且execute为平铺的key:value格式 |
reviewer |
是 |
Array of strings |
变更对象评审专家Id列表 |
approver |
是 |
Array of strings |
变更对象审批人ID数组 |
description |
否 |
String |
变更对象描述信息 |
响应参数
状态码:200
参数 |
参数类型 |
描述 |
---|---|---|
status |
String |
请求状态 |
message |
String |
请求错误信息 |
result |
ReviewEntity object |
评审详情 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
评审单id |
number |
String |
评审单编号 |
state |
String |
评审单工作状态,取值为"正在工作","作废" |
title |
String |
评审单标题 |
category |
String |
评审单类别,CR:变更评审,BR:基线评审,GR:通用评审 |
created_by |
UserEntity object |
评审单创建人 |
modified_by |
UserEntity object |
评审单最后修改人 |
assigned_cc |
Array of UserEntity objects |
评审单抄送人 |
created_time |
String |
评审单创建时间戳 |
modified_time |
String |
评审单最后修改时间戳 |
plan_end_date |
String |
计划完成日期时间戳,不可早于计划开始日期 |
plan_start_date |
String |
计划开始日期时间戳,不可晚于计划完成日期 |
close_time |
String |
评审单完成时间 |
need_approval |
String |
评审单是否需要审批人审批,可选值为yes,no |
status |
StatusEntity object |
评审单状态 |
description |
String |
评审单描述,列表接口不返回描述信息 |
closed_time |
String |
评审单完成时间 |
approver |
String |
审批人id |
reviewer |
String |
评审人id,逗号分隔 |
cos |
Array of COEntity objects |
评审对象列表 |
ccbs |
Array of CcbEntity objects |
审批信息列表 |
old_status |
StatusEntity object |
评审单状态(更新时使用) |
cc |
Array of UserEntity objects |
抄送人列表 |
参数 |
参数类型 |
描述 |
---|---|---|
after_change |
String |
变更对象修改后内容 |
review_complete_time |
String |
变更对象评审完成时间 |
review_phase_result |
String |
变更对象评审阶段结果 Approved:通过 Rejected:拒绝(CR) TurnBacked:驳回(BR/GR) |
review_time |
String |
变更对象评审时间 |
before_change |
String |
变更对象工作项修改前内容 |
category |
String |
变更对象工作项类型,此处固定为CO |
ccb_info |
CcbEntity object |
变更对象实际审批人信息 |
ccbs |
Array of UserEntity objects |
变更对象审批人列表,兼容旧版评审。现版本审批人只有一人 |
change_type |
String |
变更类型,基线评审的修改类型属于Modify Modify:修改 Move:迁移 Delete:删除 |
co2review |
String |
变更对象关联的评审单Id |
created_by |
String |
变更对象的创建人ID |
created_date |
String |
变更对象创建时间 |
description |
String |
变更对象描述信息 |
id |
String |
变更对象Id |
issue_id |
String |
变更对象关联的工作项Id |
issue_number |
String |
变更对象关联的工作项编号 |
issue_category |
String |
变更对象关联的工作项类型 |
modified_by |
String |
变更对象最后修改人Id |
modified_date |
String |
变更对象最后修改时间 |
opinions |
Array of UserEntity objects |
变更对象评审专家Id列表(创建变更评审时使用) |
opinion_comments |
Array of ReviewOpinionEntity objects |
变更对象评审意见 |
review_comments |
Array of ReviewCommentEntity objects |
变更对象评审意见(评审更新时使用) |
approval_comments |
Array of ReviewCommentEntity objects |
变更对象决策意见(决策更新时使用) |
reviewer |
Array of strings |
变更对象评审专家Id列表 |
approver |
Array of strings |
变更对象审批人ID数组 |
status |
String |
变更对象状态 |
参数 |
参数类型 |
描述 |
---|---|---|
approval_time |
String |
审批时间 |
category |
String |
工作项类型,审批对象固定为CCB |
ccb2review |
String |
审批对象关联的评审单Id |
co_id |
String |
关联的变更对象Id |
id |
String |
审批对象Id |
owner |
UserEntity object |
审批人 |
approval_comments |
String |
审批意见 |
参数 |
参数类型 |
描述 |
---|---|---|
category |
String |
评审意见对象类型,固定为Opinion |
co_id |
String |
评审意见对象关联的变更对象Id |
created_by |
UserEntity object |
评审意见创建人,即评审人 |
created_date |
String |
评审意见创建时间 |
curr_owner |
UserEntity object |
当前评审人 |
id |
String |
评审意见对象Id |
modified_date |
String |
评审意见最后修改时间 |
review_comments |
String |
评审意见 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
评审意见对象Id |
user_id |
String |
评审用户Id |
other_user_id |
String |
其他用户Id |
result |
String |
评审结果 |
comment |
String |
评审意见 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
状态id |
belonging |
String |
工作项的状态属性,START、IN_PROGRESS、END |
display_value |
String |
状态名 |
code |
String |
状态唯一标识 |
created_by |
String |
状态创建人 |
created_time |
String |
状态创建时间 |
modified_by |
String |
状态修改人 |
modified_time |
String |
状态最近修改时间 |
category_code |
Array of strings |
状态被哪些工作项使用 |
状态码:400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
请求示例
创建变更评审单
https://{endpoint}/v1/ipdprojectservice/projects/{project_id}/review
{
"title" : "21-CR-10x",
"description" : "<p><strong>【变更评审背景】</strong></p><p>1</p><p><strong>【变更评审价值】</strong></p><p><br></p><p><strong>【变更评审详情】</strong></p>",
"category" : "CR",
"need_approval" : true,
"status" : {
"code" : "ToBeReviewed"
},
"cc" : [ {
"id" : "a360371833bf4c558f796fd707b44daf"
} ],
"cos" : [ {
"issue_number" : "BUG20241209780441",
"issue_id" : "1072968362439385089",
"issue_category" : "Bug",
"change_type" : "Modify",
"before_change" : "{\"view\":{\"description\":\"<p>【故障现象描述】</p><p><br></p><p>【环境信息】</p><p><br></p><p>【故障现场定位开发人员】</p><p><br></p><p>【开发定位初步原因】</p>\"}}",
"after_change" : "{\"view\":{\"description\":\"<p>【故障现象描述】</p><p>x</p><p>【环境信息】</p><p><br></p><p>【故障现场定位开发人员】</p><p><br></p><p>【开发定位初步原因】</p>\"},\"execute\":{\"description\":\"<p>【故障现象描述】</p><p>x</p><p>【环境信息】</p><p><br></p><p>【故障现场定位开发人员】</p><p><br></p><p>【开发定位初步原因】</p>\"}}",
"approver" : [ "a360371833bf4c558f796fd707b44daf" ],
"reviewer" : [ "a360371833bf4c558f796fd707b44daf" ]
} ],
"plan_start_date" : "1733673600000",
"plan_end_date" : "1735574400000"
}
响应示例
状态码:200
OK
{
"status" : "success",
"result" : {
"id" : "1073568012549795840",
"number" : "CR20241211782294",
"state" : "正在工作",
"title" : "21-CR-10x",
"category" : "CR",
"created_by" : {
"id" : "a360371833bf4c558f796fd707b44daf",
"name" : "devcloud_devcloud_s00404480_01",
"nick_name" : "测试账号"
},
"modified_by" : {
"id" : "a360371833bf4c558f796fd707b44daf",
"name" : "devcloud_devcloud_s00404480_01",
"nick_name" : "测试账号"
},
"created_time" : "1733888160000",
"modified_time" : "1733888160000",
"plan_end_date" : "1735574400000",
"plan_start_date" : "1733673600000",
"need_approval" : "true",
"status" : {
"display_value" : "待评审",
"code" : "ToBeReviewed"
},
"description" : "<p><strong>【变更评审背景】</strong></p><p>1</p><p><strong>【变更评审价值】</strong></p><p><br></p><p><strong>【变更评审详情】</strong></p>",
"cos" : [ {
"after_change" : "{\"view\":{\"description\":\"<p>【故障现象描述】</p><p>x</p><p>【环境信息】</p><p><br></p><p>【故障现场定位开发人员】</p><p><br></p><p>【开发定位初步原因】</p>\"},\"execute\":{\"description\":\"<p>【故障现象描述】</p><p>x</p><p>【环境信息】</p><p><br></p><p>【故障现场定位开发人员】</p><p><br></p><p>【开发定位初步原因】</p>\"},\"snapshot\":{\"found_iteration\":null,\"type\":\"bug\",\"test_failures_times\":\"0\",\"number\":\"BUG20241209780441\",\"convolution_actual_hours\":null,\"path\":\"/1072968362439385089\",\"workload_man_day\":null,\"id\":\"1072968362439385089\",\"state\":\"正在工作\",\"sys_no_repair_reason\":null,\"module\":null,\"priority\":null,\"found_env\":null,\"sys_activation_reason\":null,\"assignee\":{\"watcher\":0,\"user_id\":\"a360371833bf4c558f796fd707b44daf\",\"user_num_id\":4091,\"user_name\":\"devcloud_devcloud_s00404480_01\",\"domain_id\":\"4e919d73499648e3b0292cd3cbef806a\",\"domain_name\":\"devcloud_devcloud_s00404480_01\",\"nick_name\":\"测试账号\",\"role_id\":\"257bbf34272649dd909bb35dfe27d126,05d9444b66cc4d5090ef3180a3096c91\",\"role_name\":\"项目经理,项目管理员\",\"role_alias_name\":\"Project manager,Project admin\",\"role_code\":\"Project manager,project_admin\",\"image_id\":\"\",\"region\":\"\",\"has_removed\":\"\"},\"close_type\":null,\"status\":{\"id\":\"1072203303913304105\",\"belonging\":\"START\",\"space_id\":\"1072203303493873664\",\"name\":\"分析\",\"status_category\":\"\",\"code\":\"Analyse\",\"definition_type\":\"5\",\"belong_definition_type\":3,\"belong_scope\":\"\",\"display_value\":\"分析\",\"position\":2,\"displayable\":1,\"editable\":1,\"deletable\":1,\"mutable\":1,\"title_py\":\"fx\",\"builtin\":false,\"label\":\"\",\"description\":\"\",\"created_by\":\"a360371833bf4c558f796fd707b44daf\",\"created_userinfo\":null,\"created_on\":\"\",\"created_date\":1733591588000,\"modified_date\":1733591588000,\"modified_by\":\"a360371833bf4c558f796fd707b44daf\",\"category_code\":[],\"editing_fields\":[],\"associate\":null,\"linkage_node_fields\":false},\"tenant_id\":\"4e919d73499648e3b0292cd3cbef806a\",\"plan_pi\":null,\"repair_solution\":null,\"plan_end_date\":null,\"expected_repair_date\":null,\"plan_iteration\":null,\"cascade_delete\":\"none\",\"issue_opinion_id\":null,\"modified_by\":{\"watcher\":0,\"user_id\":\"a360371833bf4c558f796fd707b44daf\",\"user_num_id\":4091,\"user_name\":\"devcloud_devcloud_s00404480_01\",\"domain_id\":\"4e919d73499648e3b0292cd3cbef806a\",\"domain_name\":\"devcloud_devcloud_s00404480_01\",\"nick_name\":\"测试账号\",\"role_id\":\"257bbf34272649dd909bb35dfe27d126,05d9444b66cc4d5090ef3180a3096c91\",\"role_name\":\"项目经理,项目管理员\",\"role_alias_name\":\"Project manager,Project admin\",\"role_code\":\"Project manager,project_admin\",\"image_id\":\"\",\"region\":\"\",\"has_removed\":\"\"},\"position_float\":\"10000000000.0000000000\",\"belong_inside\":\"1\",\"regression_failure_number\":\"0\",\"src_domain\":{\"id\":\"1072203303493873664\",\"name\":\"beta-m2-wyl-021\",\"title\":\"beta-m2-wyl-021\",\"project_id\":\"b248a70bc6434e6bad54c8e73a222dca\",\"parent_id\":\"\",\"category\":\"Project\",\"created_by\":\"a360371833bf4c558f796fd707b44daf\",\"model_id\":\"10002\",\"children\":[]},\"domain_id\":{\"id\":\"1072203303493873664\",\"name\":\"beta-m2-wyl-021\",\"title\":\"beta-m2-wyl-021\",\"project_id\":\"b248a70bc6434e6bad54c8e73a222dca\",\"parent_id\":\"\",\"category\":\"Project\",\"created_by\":\"a360371833bf4c558f796fd707b44daf\",\"model_id\":\"10002\",\"children\":[]},\"send_from\":\"\",\"send_to\":\"\",\"stay_days\":2,\"test_report\":null,\"assigned_cc\":null,\"return_reason\":null,\"submit_time\":1733745191791,\"workitem2label\":null,\"close_time\":null,\"modified_date\":1733887226000,\"created_by\":{\"watcher\":0,\"user_id\":\"a360371833bf4c558f796fd707b44daf\",\"user_num_id\":4091,\"user_name\":\"devcloud_devcloud_s00404480_01\",\"domain_id\":\"4e919d73499648e3b0292cd3cbef806a\",\"domain_name\":\"devcloud_devcloud_s00404480_01\",\"nick_name\":\"测试账号\",\"role_id\":\"257bbf34272649dd909bb35dfe27d126,05d9444b66cc4d5090ef3180a3096c91\",\"role_name\":\"项目经理,项目管理员\",\"role_alias_name\":\"Project manager,Project admin\",\"role_code\":\"Project manager,project_admin\",\"image_id\":\"\",\"region\":\"\",\"has_removed\":\"\"},\"activate_times\":\"0\",\"status_modified_date\":1733745192515,\"parent_id\":null,\"business_domain\":null,\"found_pi\":null,\"region\":\"example\",\"reason_analysis\":null,\"link\":\"\",\"is_suspended\":null,\"origin_id\":\"1072968362439385089\",\"change_status\":{\"id\":\"1072203303896526856\",\"display_value\":\"未变更\",\"value\":\"unchange\",\"code\":\"unchange\",\"value_py\":\"unchange\",\"sequence\":1.0,\"level\":1,\"domain_id\":\"1072203303493873664\",\"belong_definition_type\":\"5\"},\"title\":\"21-Bug-01\",\"sum_workload_man_day\":null,\"plan_start_date\":null,\"severity\":{\"id\":\"1072203303896526851\",\"display_value\":\"提示\",\"value\":\"提示\",\"code\":\"提示\",\"value_py\":\"ts\",\"sequence\":1.0,\"level\":1,\"domain_id\":\"1072203303493873664\",\"belong_definition_type\":\"5\"},\"convolution_plan_hours\":null,\"submitted_by\":[{\"watcher\":0,\"user_id\":\"a360371833bf4c558f796fd707b44daf\",\"user_num_id\":4091,\"user_name\":\"devcloud_devcloud_s00404480_01\",\"domain_id\":\"4e919d73499648e3b0292cd3cbef806a\",\"domain_name\":\"devcloud_devcloud_s00404480_01\",\"nick_name\":\"测试账号\",\"role_id\":\"257bbf34272649dd909bb35dfe27d126,05d9444b66cc4d5090ef3180a3096c91\",\"role_name\":\"项目经理,项目管理员\",\"role_alias_name\":\"Project manager,Project admin\",\"role_code\":\"Project manager,project_admin\",\"image_id\":\"\",\"region\":\"\",\"has_removed\":\"\"}],\"sys_return_reason\":null,\"issue_review_id\":null,\"created_date\":1733745192388,\"category\":\"Bug\",\"setup\":true,\"collaborative_status\":[],\"parent_status\":\"no\"}}",
"before_change" : "{\"view\":{\"description\":\"<p>【故障现象描述】</p><p><br></p><p>【环境信息】</p><p><br></p><p>【故障现场定位开发人员】</p><p><br></p><p>【开发定位初步原因】</p>\"}}",
"category" : "CO",
"ccbs" : [ {
"id" : "a360371833bf4c558f796fd707b44daf",
"name" : "devcloud_devcloud_s00404480_01",
"nick_name" : "测试账号"
} ],
"change_type" : "Modify",
"co2review" : "1073568012549795840",
"created_by" : "a360371833bf4c558f796fd707b44daf",
"created_date" : "1733888157000",
"description" : "<p>【故障现象描述】</p><p>x</p><p>【环境信息】</p><p><br></p><p>【故障现场定位开发人员】</p><p><br></p><p>【开发定位初步原因】</p>",
"id" : "1073568002185670656",
"issue_id" : "1072968362439385089",
"issue_number" : "BUG20241209780441",
"issue_category" : "Bug",
"modified_by" : "a360371833bf4c558f796fd707b44daf",
"modified_date" : "1733888157000",
"opinions" : [ { } ],
"approver" : [ "a360371833bf4c558f796fd707b44daf" ],
"reviewer" : [ "a360371833bf4c558f796fd707b44daf" ],
"status" : "ToBeReviewed"
} ],
"cc" : [ {
"id" : "a360371833bf4c558f796fd707b44daf",
"name" : "devcloud_devcloud_s00404480_01",
"nick_name" : "测试账号"
} ]
}
}
状态码:400
通用错误响应
{
"error_code" : "PM.02174103",
"error_msg" : "无操作权限"
}
状态码
状态码 |
描述 |
---|---|
200 |
OK |
400 |
通用错误响应 |
错误码
请参见错误码。