更新时间:2026-01-09 GMT+08:00

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

功能介绍

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

调用方法

请参见如何调用API。

URI

POST /v3/templates/task

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

否

String

用户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

OK

{
  "task_id" : "eafaff0bf9094d3d8456d13dddf67b40"
}

状态码

状态码

描述

200

OK

400

Bad request

401

Unauthorized

403

Forbidden

404

Not Found

错误码

请参见错误码。