我正在尝试查询 Azure DevOps Rest API 以获取我的应用程序的每个环境的当前和以前的版本。
我可以通过使用环境扩展选项调用 /release/definitions 端点来获取每个环境的当前版本,然后从每个环境的响应中获取 currentRelease 以获取 ids,然后通过 id 获取这些版本以获取构建。
对于之前的构建,我希望调用 /release/releases 端点来按环境 id 进行过滤,但是当我将环境 id 传递给该端点上的定义EnvironmentId 参数时,我得到 0 个结果。
如何过滤 /release/releases 端点以仅获取相关特定环境的版本?
这是我正在使用的两个发布端点:
我能够使用以下 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 中找到它们: