[英]Pass a Variable group name using REST API Azure devops
有沒有辦法在不編輯發布定義的情況下使用 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 ”請求更新原始定義。 有沒有辦法在不編輯發布定義的情況下傳遞變量組。 這是一種動態編輯發布定義以傳遞變量組的好習慣嗎?
有沒有辦法在不編輯發布定義的情況下傳遞變量組
恐怕沒有這種方法可以在不編輯發布定義的情況下傳遞Variablegroup
。
要將Variablegroup
名稱傳遞給發布定義,我們必須使用Put請求來更新定義。 由於沒有選項/REST API,我們可以在運行發布管道時使用它來更新定義。
如果您不想修改原始定義,您可以在原始定義中獲取Variablegroup
名稱,然后使用上面的 REST API 添加/更新Variablegroup
名稱。 在發布管道的末尾,我們可以再次調用上面的 REST API 來恢復原始定義中的Variablegroup
名稱。
此外,如果您添加的變量組中的變量不多,您可以在發布管道中使用Logging 命令覆蓋變量,這不會改變原始定義。
Write-Host "##vso[task.setvariable variable=testvar;]testvalue"
更新:
如何在發布管道外使用這個日志命令來修改變量組???
答案是不。 那是因為我們在創建發布管道時無法更新變量組,所以它只顯示發布變量:
希望這可以幫助。
您使用相同的$defurl
與 get 和 post。 該帖子試圖對定義api doc src執行更新,因此此代碼將始終更新發布定義。
我認為您正在尋找的端點是release -> Create這將開始一個新的部署。 我沒有使用這個端點修改變量組,但已經覆蓋了特定的變量,如果沒有彈出更好的答案,我會嘗試在我的答案中添加一些代碼。
我發現使用 fiddler 檢查 web gui 發送的 REST 調用幫助我弄清楚我的 json body 需要看起來像什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.