如何使用azure devops扩展api获取当前版本的管道Id?有没有办法在当前发布页面上获取管道Id?
您可以使用Azure Devops API、
List Definitions
获取所有最新发布,然后Get Definition
提取细节
如何在azure devops扩展api 中获取当前版本的管道Id
azure devops扩展api包提供了一个Class ReleaseRestClient,其中包括一个获取发布列表的方法getRelease:
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)
我们可以提供参数project
、definitionId
来获得当前版本的管道Id。
我希望您正在寻找特定阶段上当前成功部署的管道ID。假设您正在开发阶段作为任务的一部分运行命令,并且您需要在开发阶段成功部署的最新管道ID。
有两种方法可以获得当前版本ID:
- 对于每个发布定义,在该发布定义中的每个环境中都会更新一个当前发布
代码段:
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,那么您可以使用第二种方法。
- 在这种方法中,您可以转到部署的历史记录,然后获得成功部署的版本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。
注意:代码在python中使用azure devops库
最近,我遇到了类似的情况,因为我试图在部署期间找出当前部署版本与当前部署版本之间的变化增量。