如何在Azure Devops扩展API中获取当前版本的管道ID

时间:2020-08-03 02:59:37

标签: azure azure-devops

如何使用azure-devops-extension-api获取当前版本的管道ID?有什么方法可以在当前版本的页面上获取管道ID?

3 个答案:

答案 0 :(得分:0)

您可以使用Azure Devops API,

List Definitions获取所有最新版本,然后Get Definition提取详细信息

答案 1 :(得分:0)

如何在azure devops扩展api中获取当前版本的管道ID

azure-devops-extension-api程序包提供了一个类ReleaseRestClient,其中包括用于获取发布列表的方法getReleases

function getReleases(project?: string, definitionId?: number, definitionEnvironmentId?: number, searchText?: string, createdBy?: string, statusFilter?: ReleaseStatus, environmentStatusFilter?: number, minCreatedTime?: Date, maxCreatedTime?: Date, queryOrder?: ReleaseQueryOrder, top?: number, continuationToken?: number, expand?: ReleaseExpands, artifactTypeId?: string, sourceId?: string, artifactVersionId?: string, sourceBranchFilter?: string, isDeleted?: boolean, tagFilter?: string[], propertyFilters?: string[], releaseIdFilter?: number[], path?: string)

我们可以提供参数projectdefinitionId来获取当前版本的管道ID。

答案 2 :(得分:0)

我希望您正在寻找在特定阶段成功部署的当前管道ID。假设您在开发阶段将命令作为任务的一部分运行,并且在开发阶段需要成功部署的最新管道ID。

有两种获取当前版本ID的方法:

  1. 对于每个版本定义,该版本定义中的每个环境中都有一个最新版本。

代码段:

releases = r_client_v4_1.get_release_definition(project='XXXXX', definition_id=id)
for env in releases.environments:
    if env.name == "dev":
        print(env.additional_properties["currentRelease"]["id"])

问题是,即使使用活动的运行发行版,currentRelease也将得到更新。在发布管道中运行此脚本时,当前部署的发布将列为当前发布。如果需要成功部署的发行ID,则可以使用第二种方法。

  1. 通过这种方法,您可以转到部署历史记录,然后获取成功部署的发行版ID。

代码段:

history = r_client_v4_1.get_deployments(project="XXXXX", definition_id=release_definition_id,
                                        definition_environment_id=release_env_definition_id,
                                        deployment_status="Succeeded", latest_attempts_only=True, top=1)

rel_ids.append(str(history[0].release.id))

这将为您提供当前成功部署的发行版ID。

注意:代码使用azure-devops库在python中

最近,我遇到了类似的情况,试图找出部署期间当前部署版本与当前部署版本之间的变化增量。