对于我们的产品,有必要通过访问辅助计算机来了解是否有人可以破坏Azure Pipelines中的版本。
因此,我们想知道它是否是由用户自行托管的代理,还是由Azure Pipelines提供的代理。后者是值得信赖的,前者则不是。
有人知道如何通过构建成功的Web挂钩或REST API获取此信息(“由用户自行托管”或“由Azure管道提供”)吗?
答案 0 :(得分:1)
通过直接单击构建记录,可以查看所使用的代理是托管的还是私有的。 您还可以将Powershell任务添加到构建管道的代理作业中,并添加以下脚本。
Write-Host agent id : $(agent.id) , agent name : $(agent.name)
由于agent.name和agent.id是环境变量,因此可以直接获取它们,然后将其输出到Power Shell中。通过名称,您可以判断所使用的代理是托管代理还是私有代理。
答案 1 :(得分:1)
Web挂钩获得了诸如“ Builds-Get” Rest API之类的信息,其中包含代理程序池名称以及属性isHosted
:
queue: {
"id": 10
"name": "Hosted VS2017"
"pool": {
"id": 4,
"name": "Hosted VS2017",
"isHosted": true
}
}
因此,如果isHosted
是true
,则工作计算机是“由Azure Pipelines提供的”,而如果我是false
,则工作计算机是“由用户自我托管的”。
您还可以假设,如果池名称包含单词“ Hosted”,则为Microsoft Hosted Agent,因为无法删除这些池。