如何过滤特定环境(阶段)的版本?

问题描述 投票:0回答:1

我正在尝试查询 Azure DevOps Rest API 以获取我的应用程序的每个环境的当前和以前的版本。

我可以通过使用环境扩展选项调用 /release/definitions 端点来获取每个环境的当前版本,然后从每个环境的响应中获取 currentRelease 以获取 ids,然后通过 id 获取这些版本以获取构建。

对于之前的构建,我希望调用 /release/releases 端点来按环境 id 进行过滤,但是当我将环境 id 传递给该端点上的定义EnvironmentId 参数时,我得到 0 个结果。

如何过滤 /release/releases 端点以仅获取相关特定环境的版本?

这是我正在使用的两个发布端点:

azure-devops azure-pipelines azure-devops-rest-api
1个回答
0
投票

我能够使用以下 Rest Client 请求获取部署特定阶段(也称为环境)的最后 2 个版本:

@organization = xxxxxxxxx
@project = yyyyyyyyyy
@definitionId = 3
@definitionEnvironmentId = 6

@apiVersion = 7.1
@token = zzzzzzzzzzzzzzz

#########################################################################

GET https://vsrm.dev.azure.com/{{organization}}/{{project}}/_apis/release/releases
  ?definitionId={{definitionId}}
  &definitionEnvironmentId={{definitionEnvironmentId}}
  &idDescending=true
  &$top=2
  &$expand=environments
Accept: application/json; api-version={{apiVersion}}
Content-Type: application/json
Authorization: Bearer {{token}}

您可能需要添加或更改过滤器以更好地满足您的需求。

请注意,我正在扩展环境并仅返回 2 个结果,按 ID 降序排序(即最新版本在前)。

此外,请仔细检查您使用的

definitionId
definitionEnvironmentId
参数值是否正确 - 您可以在编辑阶段定义时在 URL 中找到它们:

See parameters

© www.soinside.com 2019 - 2024. All rights reserved.