新增迭代(1.0)
功能介绍
新增迭代,1.0版本接口
调用方法
请参见如何调用API。
URI
POST /GT3KServer/v4/iterators
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
branch_uri |
是 |
String |
参数解释 分支URI 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
参数解释: 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 约束限制: 必传。 取值范围: 字符串长度不少于1,不超过10万。 默认取值: 不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
参数解释 名称 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
number |
否 |
String |
参数解释 开发分支名称 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
owner |
否 |
String |
参数解释 处理者ID 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
version |
否 |
String |
参数解释 待测版本 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
description |
否 |
String |
参数解释 描述 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
iterations |
否 |
Array of strings |
参数解释 关联迭代 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
is_master |
否 |
String |
参数解释 是否为Master分支 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
pbi_id |
否 |
String |
参数解释 PBI ID 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
pbi_name |
否 |
String |
参数解释 PBI信息 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
plan_start_date |
否 |
String |
参数解释 开始时间 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
plan_start_timestamp |
否 |
Long |
参数解释 开始时间戳 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
plan_end_date |
否 |
String |
参数解释 结束时间 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
plan_end_timestamp |
否 |
Long |
参数解释 结束时间戳 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
asyn_git |
否 |
String |
参数解释 是否同步git库 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
project_uuid |
是 |
String |
参数解释 项目UUID,项目唯一标识,固定长度32位字符(字母和数字)。获取方式请参见获取项目ID 约束限制 不涉及 取值范围 项目uuid应符合如下规则:长度等于32位,包含大小写字母、数字 默认取值 不涉及 |
project_name |
否 |
String |
参数解释 项目名称 约束限制 不涉及 取值范围 (云龙场景,传入微服务名) 默认取值 不涉及 |
current_stage |
否 |
String |
参数解释 当前所处阶段 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
service_types |
否 |
Array of strings |
参数解释 测试类型 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
issue_list |
否 |
Array of WorkItemInfo objects |
参数解释 关联需求 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
risk_rating |
否 |
Integer |
参数解释 风险等级 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
risk_des |
否 |
String |
参数解释 风险描述 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
is_update_risk |
否 |
String |
参数解释 编辑风险信息标记 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
pi_id |
否 |
String |
参数解释 pi的id 约束限制 层级关系:pi -> 迭代 -> 需求 取值范围 不涉及 默认取值 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
work_item_id |
是 |
String |
参数解释 工作项编号 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
has_child |
是 |
Boolean |
参数解释 是否有子需求 约束限制 不涉及 取值范围 不涉及 默认取值 true:是 false:否 |
is_open |
是 |
Boolean |
参数解释 是否展开 约束限制 不涉及 取值范围 不涉及 默认取值 true:是 false:否 |
child_list |
否 |
Array of WorkItemInfo objects |
参数解释 子需求 约束限制 不涉及 取值范围 不涉及 默认取值 不涉及 |
响应参数
状态码:200
参数 |
参数类型 |
描述 |
---|---|---|
status |
String |
参数解释 本次请求的处理状态 取值范围 success|error |
result |
ResultValueTestVersionVo object |
参数解释 版本资源信息 取值范围 不涉及 |
error |
ApiError object |
参数解释 错误信息 取值范围 不涉及 |
request_id |
String |
参数解释 请求的唯一id 取值范围 由接口调用方传入,建议使用UUID保证请求的唯一性 |
server_address |
String |
参数解释 本次请求的受理的服务地址 取值范围 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
total |
Integer |
参数解释 符合条件的所有记录数 取值范围 起始记录数 大于 实际总条数时, 值为0, 分页请求才有此值 |
value |
TestVersionVo object |
参数解释 版本资源信息 取值范围 不涉及 |
reason |
String |
参数解释 业务失败的提示内容 取值范围 不涉及 |
page_size |
Integer |
参数解释 分页大小 取值范围 不涉及 |
page_no |
Integer |
参数解释 分页编号 取值范围 不涉及 |
has_more |
Boolean |
参数解释 是否有更多 取值范围 true:是 false:否 |
参数 |
参数类型 |
描述 |
---|---|---|
uri |
String |
参数解释: 资源URI 取值范围: 11-34位长度的字母、数字组成的字符串 |
type |
String |
参数解释: 资源类型 取值返回: TestVersion |
author |
String |
参数解释: 创建人 取值范围: 不涉及 |
name |
String |
参数解释: 名称 取值范围: 不涉及 |
rank |
Integer |
参数解释: 级别 取值范围: 1|2|3|4 |
version |
String |
参数解释: 待测版本 取值范围: 不涉及 |
owner |
String |
参数解释: 处理者ID 取值范围: 不涉及 |
creator |
String |
参数解释: 创建人ID 取值范围: 不涉及 |
iterations |
String |
参数解释: 关联迭代 取值范围: 不涉及 |
description |
String |
参数解释: 描述 取值范围: 不涉及 |
region |
String |
参数解释: 区域 取值范围: 不涉及 |
last_modifier |
String |
参数解释: 最后修改人 取值范围: 不涉及 |
last_modified |
DateTime |
参数解释: 最后修改时间 取值范围: 不涉及 |
last_modified_timestamp |
Long |
参数解释: 修改时间时间戳 取值范围: 不涉及 |
last_change_time |
DateTime |
参数解释: 最后变更时间 取值范围: 不涉及 |
version_uri |
String |
参数解释: 版本URI 取值范围: 11-34位字母、数字组成的字符串 |
origin_uri |
String |
参数解释: 源资源URI 取值范围: 11-34位字母、数字组成的字符串 |
parent_uri |
String |
参数解释: 父资源URI 取值范围: 不涉及 |
parent_path |
String |
参数解释: 父资源路径 取值范围: 不涉及 |
creation_version_uri |
String |
参数解释: 创建版本URI 取值范围: 11-34位字母、数字组成的字符串 |
creation_date |
DateTime |
参数解释: 创建时间 取值范围: 不涉及 |
creation_date_timestamp |
Long |
参数解释: 创建时间时间戳 取值范围: 不涉及 |
author_name |
String |
参数解释: 创建人名称 取值范围: 不涉及 |
comment |
String |
参数解释: 备注 取值范围: 不涉及 |
number |
String |
参数解释: 编号 取值范围: 不涉及 |
is_master |
Integer |
参数解释: 是否为Master分支 取值范围: 0|1 |
is_iterator |
Integer |
参数解释: 是否为迭代 取值范围: 0|1 |
plan_start_date |
DateTime |
参数解释: 开始时间 取值范围: 不涉及 |
plan_end_date |
DateTime |
参数解释: 结束时间 取值范围: 不涉及 |
service_id |
String |
参数解释: 微服务ID 取值范围: 不涉及 |
service_name |
String |
参数解释: 微服务名 取值范围: 不涉及 |
pbi_id |
String |
参数解释: PBI ID 取值范围: 不涉及 |
pbi_name |
String |
参数解释: PBI信息 取值范围: 不涉及 |
plan_id |
String |
参数解释: 计划ID 取值范围: 11-34位字母和数字组成的字符串 |
metric_pbi_ids |
String |
参数解释: 度量PBI ID 取值范围: 不涉及 |
metric_pbi_id_names |
String |
参数解释: 度量PBI名称 取值范围: 不涉及 |
last_syn_date |
DateTime |
参数解释: 最后同步时间 取值范围: 不涉及 |
is_closed |
String |
参数解释: 版本是否关闭 取值范围: 不涉及 |
asyn_git |
String |
参数解释: 是否同步git库 取值范围: 不涉及 |
schema_no |
Integer |
参数解释: schema编号 取值范围: 1-10 |
finish_date |
DateTime |
参数解释: 迭代实际完成时间 取值范围: 不涉及 |
owner_name |
String |
参数解释: 处理者名称 取值范围: 不涉及 |
creator_name |
String |
参数解释: 创建人名称 取值范围: 不涉及 |
current_stage |
String |
参数解释: 当前所处阶段 取值范围: create|strategy|design|execute|report |
service_types |
String |
参数解释: 服务类型 取值范围: 不涉及 |
risk_rating |
Integer |
参数解释: 风险等级 取值范围: 0|1|2|3|4|5 |
risk_des |
String |
参数解释: 风险描述 取值范围: 最大长度500位字符 |
project_uuid |
String |
参数解释: 项目UUID,项目唯一标识,固定长度32位字符(字母和数字)。获取方式请参见获取项目ID 取值范围: 32位字母和数字组成的字符串 |
domain_id |
String |
参数解释: 租户ID 取值范围: 11-34位字母和数字组成的字符串 |
pi_id |
String |
参数解释: pi的id 取值范围: 不涉及 |
状态码:400
参数 |
参数类型 |
描述 |
---|---|---|
code |
String |
参数解释: 业务失败的错误码 取值范围: 不涉及 |
reason |
String |
参数解释: 业务失败的提示内容 取值范围: 不涉及 |
状态码:401
参数 |
参数类型 |
描述 |
---|---|---|
code |
String |
参数解释: 业务失败的错误码 取值范围: 不涉及 |
reason |
String |
参数解释: 业务失败的提示内容 取值范围: 不涉及 |
状态码:404
参数 |
参数类型 |
描述 |
---|---|---|
code |
String |
参数解释: 业务失败的错误码 取值范围: 不涉及 |
reason |
String |
参数解释: 业务失败的提示内容 取值范围: 不涉及 |
状态码:500
参数 |
参数类型 |
描述 |
---|---|---|
code |
String |
参数解释: 业务失败的错误码 取值范围: 不涉及 |
reason |
String |
参数解释: 业务失败的提示内容 取值范围: 不涉及 |
请求示例
post https://{endpoint}/GT3KServer/v4/iterators?branch_uri=v92s00010db208e5
{
"project_uuid" : "9a5b66157ff44f6f80ce5f0fd1709f21",
"name" : "是是是",
"owner" : "6a6c782cd85f414ea20652e5f8ac7882",
"version" : "基线_版本",
"current_stage" : "",
"plan_start_date" : "2025-04-07 00:00:00",
"plan_end_date" : "2025-04-24 23:59:59",
"service_types" : [ 0, 1, 8, 11, 32, 100, 6 ],
"iterations" : [ ],
"description" : "",
"issue_list" : [ {
"work_item_id" : "sasda1111",
"has_child" : false,
"is_open" : false
} ],
"plan_start_timestamp" : 1743955200000,
"plan_end_timestamp" : 1745510399000,
"pi_id" : null
}
响应示例
状态码:200
OK
{
"status" : "success",
"result" : {
"value" : {
"uri" : "v92u00010e7dkink",
"type" : "TestVersion",
"author" : "f3b807a0d249424fa36a0d804110c4ed",
"name" : "这是一个测试计划",
"version" : "基线_版本",
"owner" : "f3b807a0d249424fa36a0d804110c4ed",
"iterations" : "[]",
"region" : "cn-north-7",
"last_modifier" : "f3b807a0d249424fa36a0d804110c4ed",
"last_modified" : "2025-04-28 16:46:40",
"last_change_time" : "2025-04-28 16:46:40",
"version_uri" : "v92s00010db208e5",
"parent_uri" : "v92s00010db208e5",
"parent_path" : "/dc3f9aa646ad4707831080d3fcce474d/v92s00010db208e5/",
"creation_version_uri" : "v92s00010db208e5",
"creation_date" : "2025-04-28 16:46:40",
"is_master" : 0,
"is_iterator" : 1,
"plan_start_date" : "2025-04-28 00:00:00",
"plan_end_date" : "2025-04-28 23:59:59",
"service_id" : "dc3f9aa646ad4707831080d3fcce474d",
"service_name" : "【车联网示例项目】车联网云服务-GJX",
"schema_no" : 1,
"current_stage" : "create",
"service_types" : "[\"0\",\"11\",\"1\",\"100\",\"6\",\"8\",\"32\"]",
"risk_rating" : 0,
"project_uuid" : "dc3f9aa646ad4707831080d3fcce474d"
}
}
}
SDK代码示例
SDK代码示例如下。
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
package com.huaweicloud.sdk.test;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.cloudtest.v1.region.CloudtestRegion;
import com.huaweicloud.sdk.cloudtest.v1.*;
import com.huaweicloud.sdk.cloudtest.v1.model.*;
import java.util.List;
import java.util.ArrayList;
public class CreateIteratorSolution {
public static void main(String[] args) {
// The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
// In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
String ak = System.getenv("CLOUD_SDK_AK");
String sk = System.getenv("CLOUD_SDK_SK");
ICredential auth = new BasicCredentials()
.withAk(ak)
.withSk(sk);
CloudtestClient client = CloudtestClient.newBuilder()
.withCredential(auth)
.withRegion(CloudtestRegion.valueOf("<YOUR REGION>"))
.build();
CreateIteratorRequest request = new CreateIteratorRequest();
IteratorVersionInfo body = new IteratorVersionInfo();
List<WorkItemInfo> listbodyIssueList = new ArrayList<>();
listbodyIssueList.add(
new WorkItemInfo()
.withWorkItemId("sasda1111")
.withHasChild(false)
.withIsOpen(false)
);
List<String> listbodyServiceTypes = new ArrayList<>();
listbodyServiceTypes.add("0");
listbodyServiceTypes.add("1");
listbodyServiceTypes.add("8");
listbodyServiceTypes.add("11");
listbodyServiceTypes.add("32");
listbodyServiceTypes.add("100");
listbodyServiceTypes.add("6");
body.withIssueList(listbodyIssueList);
body.withServiceTypes(listbodyServiceTypes);
body.withCurrentStage("");
body.withProjectUuid("9a5b66157ff44f6f80ce5f0fd1709f21");
body.withPlanEndTimestamp(1745510399000L);
body.withPlanEndDate("2025-04-24 23:59:59");
body.withPlanStartTimestamp(1743955200000L);
body.withPlanStartDate("2025-04-07 00:00:00");
body.withDescription("");
body.withVersion("基线_版本");
body.withOwner("6a6c782cd85f414ea20652e5f8ac7882");
body.withName("是是是");
request.withBody(body);
try {
CreateIteratorResponse response = client.createIterator(request);
System.out.println(response.toString());
} catch (ConnectionException e) {
e.printStackTrace();
} catch (RequestTimeoutException e) {
e.printStackTrace();
} catch (ServiceResponseException e) {
e.printStackTrace();
System.out.println(e.getHttpStatusCode());
System.out.println(e.getRequestId());
System.out.println(e.getErrorCode());
System.out.println(e.getErrorMsg());
}
}
}
|
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# coding: utf-8
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcloudtest.v1.region.cloudtest_region import CloudtestRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcloudtest.v1 import *
if __name__ == "__main__":
# The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
# In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
ak = os.environ["CLOUD_SDK_AK"]
sk = os.environ["CLOUD_SDK_SK"]
credentials = BasicCredentials(ak, sk)
client = CloudtestClient.new_builder() \
.with_credentials(credentials) \
.with_region(CloudtestRegion.value_of("<YOUR REGION>")) \
.build()
try:
request = CreateIteratorRequest()
listIssueListbody = [
WorkItemInfo(
work_item_id="sasda1111",
has_child=False,
is_open=False
)
]
listServiceTypesbody = [
"0",
"1",
"8",
"11",
"32",
"100",
"6"
]
request.body = IteratorVersionInfo(
issue_list=listIssueListbody,
service_types=listServiceTypesbody,
current_stage="",
project_uuid="9a5b66157ff44f6f80ce5f0fd1709f21",
plan_end_timestamp=1745510399000,
plan_end_date="2025-04-24 23:59:59",
plan_start_timestamp=1743955200000,
plan_start_date="2025-04-07 00:00:00",
description="",
version="基线_版本",
owner="6a6c782cd85f414ea20652e5f8ac7882",
name="是是是"
)
response = client.create_iterator(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
|
Go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
package main
import (
"fmt"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
cloudtest "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cloudtest/v1"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cloudtest/v1/model"
region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cloudtest/v1/region"
)
func main() {
// The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
// In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
ak := os.Getenv("CLOUD_SDK_AK")
sk := os.Getenv("CLOUD_SDK_SK")
auth := basic.NewCredentialsBuilder().
WithAk(ak).
WithSk(sk).
Build()
client := cloudtest.NewCloudtestClient(
cloudtest.CloudtestClientBuilder().
WithRegion(region.ValueOf("<YOUR REGION>")).
WithCredential(auth).
Build())
request := &model.CreateIteratorRequest{}
var listIssueListbody = []model.WorkItemInfo{
{
WorkItemId: "sasda1111",
HasChild: false,
IsOpen: false,
},
}
var listServiceTypesbody = []string{
"0",
"1",
"8",
"11",
"32",
"100",
"6",
}
currentStageIteratorVersionInfo:= ""
planEndTimestampIteratorVersionInfo:= int64(1745510399000)
planEndDateIteratorVersionInfo:= "2025-04-24 23:59:59"
planStartTimestampIteratorVersionInfo:= int64(1743955200000)
planStartDateIteratorVersionInfo:= "2025-04-07 00:00:00"
descriptionIteratorVersionInfo:= ""
versionIteratorVersionInfo:= "基线_版本"
ownerIteratorVersionInfo:= "6a6c782cd85f414ea20652e5f8ac7882"
request.Body = &model.IteratorVersionInfo{
IssueList: &listIssueListbody,
ServiceTypes: &listServiceTypesbody,
CurrentStage: ¤tStageIteratorVersionInfo,
ProjectUuid: "9a5b66157ff44f6f80ce5f0fd1709f21",
PlanEndTimestamp: &planEndTimestampIteratorVersionInfo,
PlanEndDate: &planEndDateIteratorVersionInfo,
PlanStartTimestamp: &planStartTimestampIteratorVersionInfo,
PlanStartDate: &planStartDateIteratorVersionInfo,
Description: &descriptionIteratorVersionInfo,
Version: &versionIteratorVersionInfo,
Owner: &ownerIteratorVersionInfo,
Name: "是是是",
}
response, err := client.CreateIterator(request)
if err == nil {
fmt.Printf("%+v\n", response)
} else {
fmt.Println(err)
}
}
|
更多
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
OK |
400 |
Bad Request |
401 |
Unauthorized |
404 |
Not Found |
500 |
Internal Server Error |
错误码
请参见错误码。