【发布时间】:2020-03-29 02:05:09
【问题描述】:
有没有办法使用 REST API 将变量组名称传递给发布管道,而无需编辑发布定义。
我可以使用以下方法来做到这一点
$defurl = "https://vsrm.dev.azure.com/org/proj/_apis/release/definitions/13?api-version=5.1"
$def = Invoke-RestMethod -Uri $defurl -Method Get -Headers $header
$def.variableGroups="VariableGroupName"
$json = @($def) | ConvertTo-Json -Depth 99
$udef = Invoke-RestMethod -Uri $defurl -Method Put -Body $json -ContentType "application/json" -Headers $header
但问题是“Put”请求更新原始定义。有没有办法在不编辑发布定义的情况下传递变量组。这是动态编辑发布定义以传递变量组的好习惯吗?
【问题讨论】:
-
你能告诉我们
$definition长什么样吗? -
$definition 是一个 Json 对象
-
我明白了,但我的意思是:您正在使用
$def.variableGroups="VariableGroupName"更新定义。您不应该将$def转换为json 并在下一次Invoke-RestMethod调用而不是$definition中使用它吗? -
是的,对不起,错字我的问题是我想传递变量而不更新\编辑定义
-
我发现 web gui 中的大多数(全部?)操作都调用了 REST api,因此当您在 web 中手动执行操作时,您可以使用 fiddler 来捕获浏览器所做的调用gui,并检查 json 在那里的样子,这可能会给你一些见解。
标签: powershell azure-devops azure-pipelines azure-devops-rest-api azure-pipelines-release-task