当您打开构建管道查看其详细的构建记录时,您可以看到相关的发布名称及其链接:
在旧的管道版本上,有一个锁定图标,可以明显地让我们知道它被保留了。事实上,锁图标不仅意味着它被释放保留,手动构建保留也显示这个图标。但是,我们似乎在扩展新的 sprint 时错过了这个明显的图标。
作为获取版本保留的构建列表的解决方法,这里有一个简短的脚本可以帮助您使用 Rest api 实现:
$token = "{PAT token}"
$url ="https://dev.azure.com/{org name}/{project name}/_apis/build/builds?api-version=5.1"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get
$results = $response.value | Where {$_.retainedByRelease -eq "true"} #|
Write-Host "results = $($results.id | ConvertTo-Json -Depth 100)"
首先,使用 list builds api 来获取当前项目中的所有构建。那么对于release保留的build,因为有参数可以表示:retainedByRelease这里我用$_.retainedByRelease -eq "true"来获取release实际保留的build列表:
上面的脚本非常通用,可以在Powershell-ise和Powershell命令行以及VSTS的Powershell任务中使用,不需要做任何改动。
11/19 更新:
根据@Auth 的评论,如果想要获得它的关联发布,最简单的方法是找到构建,然后检查它的关联发布管道,如我上面分享的截图所示。
如果这不能满足你的要求,并且我们之前使用的 API 不包含任何发布信息,那么在这里,你需要使用这个 API:Releases - Get Release:
GET https://vsrm.dev.azure.com/{org name}/{project name}/_apis/release/releases?sourceId={project id}:{build definition id}&api-version=5.1
在此 API 中,您需要指定 project id:build definition id 来过滤发布。
图标不见了,会通知相应的团队,并在以后的sprint中尝试添加。