如何从Azure DevOps REST API调用中获取列出所有版本的响应中的工件



我正在使用Azure DevOps rest API来获取所有发布的列表以及与每个发布关联的工件构建ID。调用功能:

GET https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=7.1-preview.8

列出所有版本。从那里,我可以获得发布ID,我手动将其输入到调用函数中:

GET https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}?api-version=7.1-preview.8

这个调用的响应有工件,我可以通过artifacts/definitionReference/version/ID获得该工件的构建ID

是否有任何方法可以通过列表发布调用获取工件?我使用了添加到第一个列表函数中的$expand=$artifacts,但在响应中没有出现伪影。

如有任何建议,我们将不胜感激。

如何从Azure DevOps REST API调用中获取列出所有版本的响应中的工件?

您可以循环第一个列表函数中的发布ID,以通过ForEach ($ReleaseId in $ReleaseIds )获取所有工件。

$connectionToken="PAT"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$url = "https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=7.1-preview.8"
$ReleaseInfo = (Invoke-RestMethod -Uri $url -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}) 
$ReleaseIds= $ReleaseInfo.value.id

Write-Host "ReleaseIds is = $($ReleaseIds | ConvertTo-Json -Depth 100)"
[string[]]$ReleaseIds = $ReleaseInfo.value.id

ForEach ($ReleaseId in $ReleaseIds )
{
$ArtifactsInfo= "https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/$ReleaseId?api-version=7.1-preview.8"
$TestplanInfo = (Invoke-RestMethod -Uri $ArtifactsInfo -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
....
}

最新更新