【发布时间】:2017-10-09 15:34:59
【问题描述】:
如果我想将所有构建和发布更改为新的代理队列,有没有办法一次性完成?
Agent Queue API 没有关于更改使用哪个队列的任何内容,Build API 没有队列名称的变量。在 VSTS 中,在设置的 Agent Pools 选项卡中,我可以看到池列表以及在其上运行的构建,但我看不到更改它们的方法。
是否有一种编程方式可以一次性更改它们,还是我必须手动更改它们?
我正在试验一个特定的构建,然后在每个构建中完全实现它。我现在的程序流程是:获取构建定义,从具有正确构建定义的构建中获取队列代理,将旧版本中的队列设置为等于新版本,然后将整个内容放回 VSTS。
$result = Invoke-RestMethod -Method GET -Uri $uri -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$result3 = Invoke-RestMethod -Method GET -Uri $uri3 -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$q = $result3.queue
$result.queue = $q
$result | ConvertTo-JSON
Invoke-RestMethod -Method PUT $uri -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType "application/json" -Body $result
我收到了错误
Invoke-RestMethod : {"$id":"1","innerException":null,"message":"Value cannot be null.\r\nParameter name:
如何从 GET 正确配置 PUT?
【问题讨论】:
-
你用我的解决方案解决了这个问题吗?
-
我没有,我们正在进行一些维护,并且构建代理已离线。我认为最终我将不得不在不久的将来改变整个构建步骤的方式
-
有时间可以试试,只需要指定API url即可。
标签: powershell build azure-devops