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
}
输出:
验证:
在 发布管道 中,我有一个获取多个工件(以前在 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
}
输出:
验证: