文档首页/ 流水线 CodeArts Pipeline/ API参考/ API/ 流水线管理(旧版,待下线)/ 基于模板快速创建流水线及流水线内任务 - CreatePipelineByTemplate
更新时间:2026-09-18 GMT+08:00

基于模板快速创建流水线及流水线内任务 - CreatePipelineByTemplate

功能介绍

基于模板快速创建流水线及流水线内任务

调用方法

请参见如何调用API。

URI

POST /v3/templates/task

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

否

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表2 请求Body参数

参数

是否必选

参数类型

描述

flow

是

Map<String,Map<String,String>>

参数解释:

编排flow详情,描述流水线内各阶段任务的串并行关系。map类型数据,key为阶段名字,默认第一阶段initial,最后阶段为final,其余名字以'state_数字'标识。value为该阶段内任务

(以'Task_数字'标识)以及后续阶段的标识。本字段为描述流水线基础编排数据之一,建议可通过流水线真实界面基于模板创建接口中获取。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

states

是

Map<String,TemplateState>

参数解释:

编排State详情,map类型数据。本字段为描述流水线基础编排数据之一,建议可通过流水线真实界面基于模板创建接口中获取

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

workflow

是

Workflow object

参数解释:

参数详情

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表3 TemplateState

参数

是否必选

参数类型

描述

type

是

String

任务类型

name

是

String

任务名字

module_or_template_id

是

String

模板任务ID

module_or_template_name

是

String

模板任务名字

display_name

是

String

任务在流水线页面展示名字

dsl_method

是

String

流水线可挂载任务类型

parameters

是

Map<String,Object>

任务参数,map类型数据

is_manual_execution

是

Boolean

是否手动执行

job_parameter_validate

是

Boolean

任务参数是否校验

is_show_codehub_url

是

Boolean

是否显示代码仓URL

is_execute

是

Boolean

是否执行

job_id

是

String

执行任务ID

job_name

是

String

执行任务名字

project_id

是

String

任务所属项目ID

execution_mode

是

String

控制阶段下任务的串并行(type是task的execution_mode值为null,type是stage的execution_mode可选parallel(并行)或者serial(串行))

表4 Workflow

参数

是否必选

参数类型

描述

parameter

是

Array of PipelineParam objects

参数解释:

任务类型,list类型数据。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

source

是

Array of Source objects

参数解释:

源码仓,list类型数据。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

name

是

String

参数解释:

流水线名字

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

project_id

是

String

参数解释:

项目ID

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

project_name

是

String

参数解释:

项目名字

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表5 PipelineParam

参数

是否必选

参数类型

描述

name

是

String

参数解释:

流水线参数名字

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

value

是

String

参数解释:

流水线参数值

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

description

是

String

参数解释:

流水线参数描述

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

param_type

是

String

参数解释:

流水线参数类型

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

is_static

是

Boolean

参数解释:

是否静态参数。

约束限制:

不涉及。

取值范围:

  • true:是静态参数。

  • false:不是静态参数。

默认取值:

不涉及。

is_default

是

Boolean

参数解释:

是否默认参数。

约束限制:

不涉及。

取值范围:

  • true:是默认参数。

  • false:不是默认参数。

默认取值:

不涉及。

表6 Source

参数

是否必选

参数类型

描述

codehub_name

是

String

源码仓名字

branches

是

Array of strings

触发分支

scm_type

是

String

源码仓来源

hook_flag

是

Boolean

是否开启触发执行流水线功能

branch

是

String

触发分支

git_url

是

String

源码仓ssh地址

codehub_id

是

String

源码仓ID

web_url

是

String

源码仓首页url

branch_list

是

Array of strings

分支列表

init_id

是

String

初始化ID

disable

是

Boolean

是否废弃

响应参数

状态码:200

表7 响应Body参数

参数

参数类型

描述

task_id

String

参数解释:

实例ID。

取值范围:

32位字符,由数字和字母组成。

状态码:400

表8 响应Body参数

参数

参数类型

描述

error_msg

String

参数解释:

错误信息。

取值范围:

不涉及。

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

请求示例

POST https://{endpoint}/v3/templates/task

{
  "flow" : {
    "initial" : {
      "state_3" : "always"
    },
    "state_3" : {
      "state_4" : "always"
    },
    "state_4" : {
      "state_5" : "always",
      "Task_1" : "always",
      "Task_2" : "always"
    },
    "state_5" : {
      "final" : "always"
    }
  },
  "states" : {
    "initial" : {
      "type" : "stage",
      "name" : "initial",
      "module_or_template_id" : null,
      "module_or_template_name" : null,
      "display_name" : "Initial",
      "dsl_method" : "initial",
      "parameters" : {
        "display" : "hidden"
      },
      "params" : null,
      "is_manual_mxecution" : false,
      "execution_mode" : "parallel"
    },
    "state_3" : {
      "type" : "stage",
      "name" : "state_3",
      "module_or_template_id" : null,
      "module_or_template_name" : null,
      "display_name" : "Source",
      "dsl_method" : "source",
      "parameters" : null,
      "params" : null,
      "is_manual_execution" : false,
      "execution_mode" : "parallel"
    },
    "Task_1" : {
      "type" : "task",
      "name" : "Task_1",
      "module_or_template_id" : "00012",
      "module_or_template_name" : "Maven",
      "display_name" : "Build_Task",
      "dsl_method" : "buildJob",
      "parameters" : {
        "__repository__" : {
          "repo_name" : "fdfdfdf",
          "url" : "git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git"
        }
      },
      "params" : null,
      "is_manual_execution" : false,
      "execution_mode" : null,
      "job_parameter_palidate" : true,
      "is_show_code_hub_url" : false,
      "is_execute" : true,
      "job_id" : "00012",
      "job_name" : "Maven",
      "project_id" : "4719b59466624abfbae0f83c3ce3a0dc"
    },
    "Task_2" : {
      "type" : "task",
      "name" : "Task_2",
      "module_or_template_id" : "d7dffaefb6d94c63a09cf141668356c7",
      "module_or_template_name" : "codecheck_template",
      "display_name" : "Code_Check_Task",
      "dsl_method" : "codeCheck",
      "parameters" : {
        "language" : {
          "disable" : null,
          "name" : "Java",
          "display_name" : "Java",
          "id" : "782aade71ffb4ab780303555eb2e4825",
          "language" : "java"
        },
        "codeBranch" : "master",
        "__repository__" : {
          "repo_name" : "fdfdfdf",
          "url" : "git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git"
        }
      },
      "params" : null,
      "is_manual_execution" : false,
      "execution_mode" : null,
      "job_parameter_palidate" : true,
      "is_show_code_hub_url" : false,
      "is_execute" : true,
      "job_id" : "d7dffaefb6d94c63a09cf141668356c7",
      "job_name" : "codecheck_template",
      "project_id" : "4719b59466624abfbae0f83c3ce3a0dc"
    },
    "state_4" : {
      "type" : "stage",
      "name" : "state_4",
      "module_or_template_id" : null,
      "module_or_template_name" : null,
      "display_name" : "Build_and_Check",
      "dsl_method" : "build",
      "parameters" : null,
      "params" : null,
      "is_manual_mxecution" : false,
      "execution_mode" : "parallel"
    },
    "state_5" : {
      "type" : "stage",
      "name" : "state_5",
      "module_or_template_id" : null,
      "module_or_template_name" : null,
      "display_name" : "Release",
      "dsl_method" : "release",
      "parameters" : null,
      "params" : null,
      "is_manual_mxecution" : false,
      "execution_mode" : "parallel"
    },
    "final" : {
      "type" : "stage",
      "name" : "final",
      "module_or_template_id" : null,
      "module_or_template_name" : null,
      "display_name" : "Final",
      "dsl_method" : "final",
      "parameters" : null,
      "params" : null,
      "is_manual_mxecution" : false,
      "execution_mode" : "parallel"
    }
  },
  "workflow" : {
    "parameter" : [ {
      "name" : "serviceName",
      "value" : "pipeline-20201229165622",
      "description" : "this is a text type param",
      "paramtype" : "normalparam",
      "display_name" : null,
      "isStatic" : true,
      "isDefault" : true,
      "constraints" : null
    }, {
      "name" : "releaseVersion",
      "value" : "1.0.0",
      "description" : "this is a growth type param",
      "paramtype" : "growthparam",
      "display_name" : null,
      "isStatic" : false,
      "isDefault" : true,
      "constraints" : null
    } ],
    "source" : [ {
      "scmType" : "codehub",
      "codeHubName" : "fdfdfdf",
      "hookFlag" : false,
      "branches" : [ ],
      "defaultBranch" : "master",
      "branch" : "",
      "codeHubId" : "5224040",
      "gitUrl" : "git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git",
      "webUrl" : "https://example.com/codehub/project/bc97c4d99c7d4f98bb6cd104a77fddd6/codehub/140000127/home",
      "branchList" : [ "master" ]
    } ],
    "name" : "pipeline-123123",
    "description" : "",
    "project_id" : "bc97c4d99c7d4f98bb6cd104a77fddd6",
    "project_name" : "CloudPipelineTest-Copy"
  },
  "changeInfo" : null
}

响应示例

状态码:200

{
  "task_id" : "eafaff0bf9094d3d8456d13dddf67b40"
}

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
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
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.codeartspipeline.v2.region.CodeArtsPipelineRegion;
import com.huaweicloud.sdk.codeartspipeline.v2.*;
import com.huaweicloud.sdk.codeartspipeline.v2.model.*;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;

public class CreatePipelineByTemplateSolution {

    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);

        CodeArtsPipelineClient client = CodeArtsPipelineClient.newBuilder()
                .withCredential(auth)
                .withRegion(CodeArtsPipelineRegion.valueOf("<YOUR REGION>"))
                .build();
        CreatePipelineByTemplateRequest request = new CreatePipelineByTemplateRequest();
        TemplateCddl body = new TemplateCddl();
        List<Source> listWorkflowSource = new ArrayList<>();
        listWorkflowSource.add(
            new Source()
                .withBranches()
                .withBranch("")
        );
        List<PipelineParam> listWorkflowParameter = new ArrayList<>();
        listWorkflowParameter.add(
            new PipelineParam()
                .withName("serviceName")
                .withValue("pipeline-20201229165622")
                .withDescription("this is a text type param")
        );
        listWorkflowParameter.add(
            new PipelineParam()
                .withName("releaseVersion")
                .withValue("1.0.0")
                .withDescription("this is a growth type param")
        );
        Workflow workflowbody = new Workflow();
        workflowbody.withParameter(listWorkflowParameter)
            .withSource(listWorkflowSource)
            .withName("pipeline-123123")
            .withProjectId("bc97c4d99c7d4f98bb6cd104a77fddd6")
            .withProjectName("CloudPipelineTest-Copy");
        TemplateState statesStates = new TemplateState();
        statesStates.withType("stage")
            .withName("final")
            .withDisplayName("Final")
            .withDslMethod("final")
            .withExecutionMode("parallel");
        TemplateState statesStates1 = new TemplateState();
        statesStates1.withType("stage")
            .withName("state_5")
            .withDisplayName("Release")
            .withDslMethod("release")
            .withExecutionMode("parallel");
        TemplateState statesStates2 = new TemplateState();
        statesStates2.withType("stage")
            .withName("state_4")
            .withDisplayName("Build_and_Check")
            .withDslMethod("build")
            .withExecutionMode("parallel");
        Map<String, Object> listStatesParameters = new HashMap<>();
        listStatesParameters.put("language", "{\"name\":\"Java\",\"language\":\"java\",\"id\":\"782aade71ffb4ab780303555eb2e4825\",\"display_name\":\"Java\"}");
        listStatesParameters.put("codeBranch", "master");
        listStatesParameters.put("__repository__", "{\"repo_name\":\"fdfdfdf\",\"url\":\"git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git\"}");
        TemplateState statesStates3 = new TemplateState();
        statesStates3.withType("task")
            .withName("Task_2")
            .withModuleOrTemplateId("d7dffaefb6d94c63a09cf141668356c7")
            .withModuleOrTemplateName("codecheck_template")
            .withDisplayName("Code_Check_Task")
            .withDslMethod("codeCheck")
            .withParameters(listStatesParameters)
            .withIsManualExecution(false)
            .withIsExecute(true)
            .withJobId("d7dffaefb6d94c63a09cf141668356c7")
            .withJobName("codecheck_template")
            .withProjectId("4719b59466624abfbae0f83c3ce3a0dc");
        Map<String, Object> listStatesParameters1 = new HashMap<>();
        listStatesParameters1.put("__repository__", "{\"repo_name\":\"fdfdfdf\",\"url\":\"git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git\"}");
        TemplateState statesStates4 = new TemplateState();
        statesStates4.withType("task")
            .withName("Task_1")
            .withModuleOrTemplateId("00012")
            .withModuleOrTemplateName("Maven")
            .withDisplayName("Build_Task")
            .withDslMethod("buildJob")
            .withParameters(listStatesParameters1)
            .withIsManualExecution(false)
            .withIsExecute(true)
            .withJobId("00012")
            .withJobName("Maven")
            .withProjectId("4719b59466624abfbae0f83c3ce3a0dc");
        TemplateState statesStates5 = new TemplateState();
        statesStates5.withType("stage")
            .withName("state_3")
            .withDisplayName("Source")
            .withDslMethod("source")
            .withIsManualExecution(false)
            .withExecutionMode("parallel");
        Map<String, Object> listStatesParameters2 = new HashMap<>();
        listStatesParameters2.put("display", "hidden");
        TemplateState statesStates6 = new TemplateState();
        statesStates6.withType("stage")
            .withName("initial")
            .withDisplayName("Initial")
            .withDslMethod("initial")
            .withParameters(listStatesParameters2)
            .withExecutionMode("parallel");
        Map<String, TemplateState> listbodyStates = new HashMap<>();
        listbodyStates.put("initial", statesStates6);
        listbodyStates.put("state_3", statesStates5);
        listbodyStates.put("Task_1", statesStates4);
        listbodyStates.put("Task_2", statesStates3);
        listbodyStates.put("state_4", statesStates2);
        listbodyStates.put("state_5", statesStates1);
        listbodyStates.put("final", statesStates);
        Map<String, String> listFlowFlow = new HashMap<>();
        listFlowFlow.put("final", "always");
        Map<String, String> listFlowFlow1 = new HashMap<>();
        listFlowFlow1.put("state_5", "always");
        listFlowFlow1.put("Task_1", "always");
        listFlowFlow1.put("Task_2", "always");
        Map<String, String> listFlowFlow2 = new HashMap<>();
        listFlowFlow2.put("state_4", "always");
        Map<String, String> listFlowFlow3 = new HashMap<>();
        listFlowFlow3.put("state_3", "always");
        Map<String, Map<String, String>> listbodyFlow = new HashMap<>();
        listbodyFlow.put("initial", listFlowFlow3);
        listbodyFlow.put("state_3", listFlowFlow2);
        listbodyFlow.put("state_4", listFlowFlow1);
        listbodyFlow.put("state_5", listFlowFlow);
        body.withWorkflow(workflowbody);
        body.withStates(listbodyStates);
        body.withFlow(listbodyFlow);
        request.withBody(body);
        try {
            CreatePipelineByTemplateResponse response = client.createPipelineByTemplate(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
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcodeartspipeline.v2.region.codeartspipeline_region import CodeArtsPipelineRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcodeartspipeline.v2 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 = CodeArtsPipelineClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CodeArtsPipelineRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = CreatePipelineByTemplateRequest()
        listSourceWorkflow = [
            Source(
                branch=""
            )
        ]
        listParameterWorkflow = [
            PipelineParam(
                name="serviceName",
                value="pipeline-20201229165622",
                description="this is a text type param"
            ),
            PipelineParam(
                name="releaseVersion",
                value="1.0.0",
                description="this is a growth type param"
            )
        ]
        workflowbody = Workflow(
            parameter=listParameterWorkflow,
            source=listSourceWorkflow,
            name="pipeline-123123",
            project_id="bc97c4d99c7d4f98bb6cd104a77fddd6",
            project_name="CloudPipelineTest-Copy"
        )
        statesStates = TemplateState(
            type="stage",
            name="final",
            display_name="Final",
            dsl_method="final",
            execution_mode="parallel"
        )
        statesStates1 = TemplateState(
            type="stage",
            name="state_5",
            display_name="Release",
            dsl_method="release",
            execution_mode="parallel"
        )
        statesStates2 = TemplateState(
            type="stage",
            name="state_4",
            display_name="Build_and_Check",
            dsl_method="build",
            execution_mode="parallel"
        )
        listParametersStates = {
            "language": "{\"name\":\"Java\",\"language\":\"java\",\"id\":\"782aade71ffb4ab780303555eb2e4825\",\"display_name\":\"Java\"}",
            "codeBranch": "master",
            "__repository__": "{\"repo_name\":\"fdfdfdf\",\"url\":\"git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git\"}"
        }
        statesStates3 = TemplateState(
            type="task",
            name="Task_2",
            module_or_template_id="d7dffaefb6d94c63a09cf141668356c7",
            module_or_template_name="codecheck_template",
            display_name="Code_Check_Task",
            dsl_method="codeCheck",
            parameters=listParametersStates,
            is_manual_execution=False,
            is_execute=True,
            job_id="d7dffaefb6d94c63a09cf141668356c7",
            job_name="codecheck_template",
            project_id="4719b59466624abfbae0f83c3ce3a0dc"
        )
        listParametersStates1 = {
            "__repository__": "{\"repo_name\":\"fdfdfdf\",\"url\":\"git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git\"}"
        }
        statesStates4 = TemplateState(
            type="task",
            name="Task_1",
            module_or_template_id="00012",
            module_or_template_name="Maven",
            display_name="Build_Task",
            dsl_method="buildJob",
            parameters=listParametersStates1,
            is_manual_execution=False,
            is_execute=True,
            job_id="00012",
            job_name="Maven",
            project_id="4719b59466624abfbae0f83c3ce3a0dc"
        )
        statesStates5 = TemplateState(
            type="stage",
            name="state_3",
            display_name="Source",
            dsl_method="source",
            is_manual_execution=False,
            execution_mode="parallel"
        )
        listParametersStates2 = {
            "display": "hidden"
        }
        statesStates6 = TemplateState(
            type="stage",
            name="initial",
            display_name="Initial",
            dsl_method="initial",
            parameters=listParametersStates2,
            execution_mode="parallel"
        )
        listStatesbody = {
            "initial": statesStates6,
            "state_3": statesStates5,
            "Task_1": statesStates4,
            "Task_2": statesStates3,
            "state_4": statesStates2,
            "state_5": statesStates1,
            "final": statesStates
        }
        listFlowFlow = {
            "final": "always"
        }
        listFlowFlow1 = {
            "state_5": "always",
            "Task_1": "always",
            "Task_2": "always"
        }
        listFlowFlow2 = {
            "state_4": "always"
        }
        listFlowFlow3 = {
            "state_3": "always"
        }
        listFlowbody = {
            "initial": listFlowFlow3,
            "state_3": listFlowFlow2,
            "state_4": listFlowFlow1,
            "state_5": listFlowFlow
        }
        request.body = TemplateCddl(
            workflow=workflowbody,
            states=listStatesbody,
            flow=listFlowbody
        )
        response = client.create_pipeline_by_template(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
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    codeartspipeline "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2/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, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        SafeBuild()

    if err != nil {
        fmt.Println(err)
        return
    }

    hcClient, err := codeartspipeline.CodeArtsPipelineClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()


    if err != nil {
        fmt.Println(err)
        return
    }

    client := codeartspipeline.NewCodeArtsPipelineClient(hcClient)

    request := &model.CreatePipelineByTemplateRequest{}
	var listSourceWorkflow = []model.Source{
        {
            Branch: "",
        },
    }
	var listParameterWorkflow = []model.PipelineParam{
        {
            Name: "serviceName",
            Value: "pipeline-20201229165622",
            Description: "this is a text type param",
        },
        {
            Name: "releaseVersion",
            Value: "1.0.0",
            Description: "this is a growth type param",
        },
    }
	workflowbody := &model.Workflow{
		Parameter: listParameterWorkflow,
		Source: listSourceWorkflow,
		Name: "pipeline-123123",
		ProjectId: "bc97c4d99c7d4f98bb6cd104a77fddd6",
		ProjectName: "CloudPipelineTest-Copy",
	}
	statesStates := model.TemplateState{
		Type: "stage",
		Name: "final",
		DisplayName: "Final",
		DslMethod: "final",
		ExecutionMode: "parallel",
	}
	statesStates1 := model.TemplateState{
		Type: "stage",
		Name: "state_5",
		DisplayName: "Release",
		DslMethod: "release",
		ExecutionMode: "parallel",
	}
	statesStates2 := model.TemplateState{
		Type: "stage",
		Name: "state_4",
		DisplayName: "Build_and_Check",
		DslMethod: "build",
		ExecutionMode: "parallel",
	}
	var listParametersStates = map[string]interface{}{
        "language": "{\"name\":\"Java\",\"language\":\"java\",\"id\":\"782aade71ffb4ab780303555eb2e4825\",\"display_name\":\"Java\"}",
        "codeBranch": "master",
        "__repository__": "{\"repo_name\":\"fdfdfdf\",\"url\":\"git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git\"}",
    }
	statesStates3 := model.TemplateState{
		Type: "task",
		Name: "Task_2",
		ModuleOrTemplateId: "d7dffaefb6d94c63a09cf141668356c7",
		ModuleOrTemplateName: "codecheck_template",
		DisplayName: "Code_Check_Task",
		DslMethod: "codeCheck",
		Parameters: listParametersStates,
		IsManualExecution: false,
		IsExecute: true,
		JobId: "d7dffaefb6d94c63a09cf141668356c7",
		JobName: "codecheck_template",
		ProjectId: "4719b59466624abfbae0f83c3ce3a0dc",
	}
	var listParametersStates1 = map[string]interface{}{
        "__repository__": "{\"repo_name\":\"fdfdfdf\",\"url\":\"git@example.com:CloudPipelineTest-Copy00001/fdfdfdf.git\"}",
    }
	statesStates4 := model.TemplateState{
		Type: "task",
		Name: "Task_1",
		ModuleOrTemplateId: "00012",
		ModuleOrTemplateName: "Maven",
		DisplayName: "Build_Task",
		DslMethod: "buildJob",
		Parameters: listParametersStates1,
		IsManualExecution: false,
		IsExecute: true,
		JobId: "00012",
		JobName: "Maven",
		ProjectId: "4719b59466624abfbae0f83c3ce3a0dc",
	}
	statesStates5 := model.TemplateState{
		Type: "stage",
		Name: "state_3",
		DisplayName: "Source",
		DslMethod: "source",
		IsManualExecution: false,
		ExecutionMode: "parallel",
	}
	var listParametersStates2 = map[string]interface{}{
        "display": "hidden",
    }
	statesStates6 := model.TemplateState{
		Type: "stage",
		Name: "initial",
		DisplayName: "Initial",
		DslMethod: "initial",
		Parameters: listParametersStates2,
		ExecutionMode: "parallel",
	}
	var listStatesbody = map[string](model.TemplateState){
        "initial": statesStates6,
        "state_3": statesStates5,
        "Task_1": statesStates4,
        "Task_2": statesStates3,
        "state_4": statesStates2,
        "state_5": statesStates1,
        "final": statesStates,
    }
	var listFlowFlow = map[string]string{
        "final": "always",
    }
	var listFlowFlow2 = map[string]string{
        "state_5": "always",
        "Task_1": "always",
        "Task_2": "always",
    }
	var listFlowFlow6 = map[string]string{
        "state_4": "always",
    }
	var listFlowFlow8 = map[string]string{
        "state_3": "always",
    }
	var listFlowbody = map[string]map[string]string{
        "initial": listFlowFlow8,
        "state_3": listFlowFlow6,
        "state_4": listFlowFlow2,
        "state_5": listFlowFlow,
    }
	request.Body = &model.TemplateCddl{
		Workflow: workflowbody,
		States: listStatesbody,
		Flow: listFlowbody,
	}
	response, err := client.CreatePipelineByTemplate(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

OK

400

Bad request

401

Unauthorized

403

Forbidden

404

Not Found

错误码

请参见错误码。