Azure Devops:如何通过 Rest API 检索发布工件的版本?

Azure Devops: how to retrieve the release artifact's versions via the Rest API?

发布管道 中,我有一个获取多个工件(以前在 Devops 中构建)的作业,在此处列为 A 和 B。

第一步,我需要获取当前版本中使用的工件名称列表。为此,我有一些 return 的 Powershell 脚本。

根据 API 文档 (https://docs.microsoft.com/en-us/rest/api/azure/devops/release/releases/get%20release?view=azure-devops-server-rest-5.0#artifact) 它应该 return 这样的信息 (version.id)

$url = "<project URL>/_apis/release/releases/" + $releaseid + "?api-version=5.1"
$res = Invoke-RestMethod -Uri $url -Method Get -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } 

foreach ($a in $res.artifacts)
{
  Write-Host "Artifact name: "$a.alias
  Write-Host "Artifact version: "$a.version.id
}

这 return 在版本字段中没有任何内容:

Artifact name:  test-scripts
Artifact version:  
Artifact name:  A
Artifact version:  
Artifact name:  B
Artifact version:

对此非常感谢。

您需要指向 definitionReference.version.id 而不是 version.id

工作代码片段:

$PATToken = "####"
$AuthHeader= @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($PATToken)")) }

$url = "https://vsrm.dev.azure.com/{organization}/${project}/_apis/release/releases/{release id}?api-version=5.1"
$res = Invoke-RestMethod -Uri $url -Method get -Headers $AuthHeader


foreach ($a in $res.artifacts)
{
  Write-Host "Artifact name: "$a.alias
  Write-Host "Artifact version: "$a.definitionReference.version.id
}

输出:

验证: