azure-devops - 未通过 Azure DevOps API 获取完整的管道运行信息
问题描述
为了解决这个问题为通过管道部署的最后一个分支创建仪表板,我想我会尝试使用 Azure DevOps API。它在大多数情况下都可以正常工作,但是我观察到 GET Run API 不会返回 mult-repo 管道的所有存储库信息(https://docs.microsoft.com/en-us/rest/api/azure/ devops/pipelines/runs/get?view=azure-devops-rest-6.0)。它似乎只返回self
repo 的数据。例如,我的一次运行的响应负载如下所示:
"resources": {
"repositories": {
"self": {
"repository": null,
"refName": "refs/heads/master",
"version": "commit-hash"
}
}
},
尽管事实上还有其他几个 repos 正在检查中。这是一个错误还是预期的?有解决方法吗?
谢谢!
解决方案
我们可以通过 F12 获取 REST API,这个 REST API 是https://dev.azure.com/{Org name}/{Project name}/_build/results?buildId={Build ID}&__rt=fps&__ver=2
电源外壳脚本:
cls
$connectionToken="{PAT}"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$URL = "https://dev.azure.com/{Org name}/{Project name}/_build/results?buildId={Build ID}&__rt=fps&__ver=2"
$Result = Invoke-RestMethod -Uri $URL -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
Write-Host "This build sources are"$Result.fps.dataProviders.data."ms.vss-build-web.run-details-data-provider".repositoryResources.alias
结果:
注意:这个yaml文件保存在reposample
中,self
repo就是sample
repo
推荐阅读
- docker - Nvidia Jetson Tx2 Opencv 在 Docker 中编译
- mongodb - MongoDB上基于子文档中的多个条件的聚合查询
- sql - SQL Server 中是否有任何方法可以有条件地返回列?
- screen - 使用 PIC16F877A 微控制器从 TFT 屏幕读取 UART 问题
- python - 即使使用 __init__ 导入的函数也不起作用
- node.js - node.js nodemailer 和 nodemailer-sendinblue-transport 无法发送电子邮件
- reactjs - 在 Gatsby 网站的 Netlify 仪表板中看不到表单
- python - IndexError:索引超出范围 Python 错误
- distributed-computing - 协调器失败时的两阶段提交阻塞
- node.js - TypeError:无法读取未定义 Angular SSR 的属性“indexOf”