更新时间:2024-06-14 GMT+08:00

获取流水线执行记录

功能介绍

获取流水线执行记录

调用方法

请参见如何调用API

URI

POST /v5/{project_id}/api/pipelines/{pipeline_id}/pipeline-runs/list

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID

pipeline_id

String

流水线ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

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

表3 请求Body参数

参数

是否必选

参数类型

描述

status

Array of strings

状态

start_time

String

开始时间

end_time

String

结束时间

offset

Long

起始偏移

limit

Long

查询大小

sort_key

String

排序字段名称

sort_dir

String

排序规则

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

offset

Integer

起始偏移

limit

Integer

查询大小

total

Integer

总数

pipeline_runs

Array of pipeline_runs objects

流水线运行信息

表5 pipeline_runs

参数

参数类型

描述

pipeline_id

String

流水线ID

pipeline_run_id

String

流水线运行实例ID

executor_id

String

执行人ID

executor_name

String

执行人名称

stage_status_list

Array of stage_status_list objects

阶段信息

status

String

状态

run_number

Integer

运行序号

trigger_type

String

触发类型

build_params

build_params object

构建参数

artifact_params

artifact_params object

制品源参数

start_time

Long

开始时间

end_time

Long

结束时间

detail_url

String

详情页地址

modify_url

String

修改页地址

表6 stage_status_list

参数

参数类型

描述

name

String

阶段名称

sequence

Integer

序列号

status

String

状态

start_time

String

开始时间

end_time

String

结束时间

id

String

阶段ID

表7 build_params

参数

参数类型

描述

action

String

合并请求事件类型

build_type

String

基于分支还是tag触发

commit_id

String

代码仓提交ID

event_type

String

运行事件类型

merge_id

String

合并请求ID

message

String

代码仓提交信息

source_branch

String

源分支

tag

String

标签

target_branch

String

目标分支

codehub_id

String

Repo代码仓ID

git_url

String

代码仓https地址

source_codehub_id

String

源Repo代码仓ID

source_codehub_url

String

源Repo代码仓地址

source_codehub_http_url

String

源Repo代码仓http地址

表8 artifact_params

参数

参数类型

描述

version

String

包版本

branch_filter

String

过滤分支

package_name

String

包名称

organization

String

docker组织

请求示例

获取流水线执行记录。 指定查询的起始偏移量为0,数量为10,开始时间戳为1677513600000,结束时间戳为1678118399000,并按照开始时间降序排序。

POST https://{endpoint}/v5/54f90b75fc1447b1b65e8d3a9f77923d/api/pipelines/e5460d1d403146a1935c2d4b68ef506c/pipeline-runs/list

{
  "offset" : 0,
  "limit" : 10,
  "status" : [ "COMPLETED", "RUNNING", "FAILED", "CANCELED", "PAUSED", "SUSPEND", "QUEUED" ],
  "sort_key" : "start_time",
  "sort_dir" : "DESC",
  "start_time" : 1677513600000,
  "end_time" : 1678118399000
}

响应示例

状态码: 200

OK

{
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "pipeline_runs" : [ {
    "pipeline_id" : "24949d4f4453495f8e5a76f993af7f43",
    "pipeline_run_id" : "ddb7532cb0e948f2af7bb4397fc19864",
    "executor_id" : "847a5317086c41798469d0868535943a",
    "executor_name" : "beta环境账号",
    "stage_status_list" : [ {
      "name" : "阶段_1",
      "sequence" : 0,
      "status" : "COMPLETED",
      "start_time" : "2023-03-06 10:04:46",
      "end_time" : "2023-03-06 10:04:46"
    } ],
    "status" : "COMPLETED",
    "run_number" : 11,
    "trigger_type" : "Manual",
    "build_params" : {
      "action" : null,
      "build_type" : "branch",
      "commit_id" : "990ea057751d299f5575aac25bf97e88a60b461e",
      "event_type" : "Manual",
      "merge_id" : null,
      "message" : "新建文件 Dockerfile",
      "source_branch" : null,
      "tag" : null,
      "target_branch" : "cloud_pipeline_release_1674026917209",
      "codehub_id" : "2111677704",
      "git_url" : "https://example.com/clsyz00001/aaaaa.git"
    },
    "artifact_params" : null,
    "start_time" : 1678066487000,
    "end_time" : 1678066488000
  } ]
}

SDK代码示例

SDK代码示例如下。

获取流水线执行记录。 指定查询的起始偏移量为0,数量为10,开始时间戳为1677513600000,结束时间戳为1678118399000,并按照开始时间降序排序。

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

public class ListPipelineRunsSolution {

    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();
        ListPipelineRunsRequest request = new ListPipelineRunsRequest();
        ListPipelineRunsQuery body = new ListPipelineRunsQuery();
        List<String> listbodyStatus = new ArrayList<>();
        listbodyStatus.add("COMPLETED");
        listbodyStatus.add("RUNNING");
        listbodyStatus.add("FAILED");
        listbodyStatus.add("CANCELED");
        listbodyStatus.add("PAUSED");
        listbodyStatus.add("SUSPEND");
        listbodyStatus.add("QUEUED");
        body.withSortDir("DESC");
        body.withSortKey("start_time");
        body.withLimit(10L);
        body.withOffset(0L);
        body.withEndTime("1678118399000");
        body.withStartTime("1677513600000");
        body.withStatus(listbodyStatus);
        request.withBody(body);
        try {
            ListPipelineRunsResponse response = client.listPipelineRuns(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());
        }
    }
}

获取流水线执行记录。 指定查询的起始偏移量为0,数量为10,开始时间戳为1677513600000,结束时间戳为1678118399000,并按照开始时间降序排序。

 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
# 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 = ListPipelineRunsRequest()
        listStatusbody = [
            "COMPLETED",
            "RUNNING",
            "FAILED",
            "CANCELED",
            "PAUSED",
            "SUSPEND",
            "QUEUED"
        ]
        request.body = ListPipelineRunsQuery(
            sort_dir="DESC",
            sort_key="start_time",
            limit=10,
            offset=0,
            end_time="1678118399000",
            start_time="1677513600000",
            status=listStatusbody
        )
        response = client.list_pipeline_runs(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

获取流水线执行记录。 指定查询的起始偏移量为0,数量为10,开始时间戳为1677513600000,结束时间戳为1678118399000,并按照开始时间降序排序。

 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
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 := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := codeartspipeline.NewCodeArtsPipelineClient(
        codeartspipeline.CodeArtsPipelineClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListPipelineRunsRequest{}
	var listStatusbody = []string{
        "COMPLETED",
	    "RUNNING",
	    "FAILED",
	    "CANCELED",
	    "PAUSED",
	    "SUSPEND",
	    "QUEUED",
    }
	sortDirListPipelineRunsQuery:= "DESC"
	sortKeyListPipelineRunsQuery:= "start_time"
	limitListPipelineRunsQuery:= int64(10)
	offsetListPipelineRunsQuery:= int64(0)
	endTimeListPipelineRunsQuery:= "1678118399000"
	startTimeListPipelineRunsQuery:= "1677513600000"
	request.Body = &model.ListPipelineRunsQuery{
		SortDir: &sortDirListPipelineRunsQuery,
		SortKey: &sortKeyListPipelineRunsQuery,
		Limit: &limitListPipelineRunsQuery,
		Offset: &offsetListPipelineRunsQuery,
		EndTime: &endTimeListPipelineRunsQuery,
		StartTime: &startTimeListPipelineRunsQuery,
		Status: &listStatusbody,
	}
	response, err := client.ListPipelineRuns(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

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

状态码

状态码

描述

200

OK

401

Unauthorized

403

Forbidden

404

Not Found

错误码

请参见错误码