在VSTS中设置用户组变量?

时间:2018-06-18 14:40:12

标签: azure-devops

如何在构建过程之间或使用Powershell设置/更改VSTS的用户组变量的值?那可能吗?

我实际上想设置几个变量并将它们访问到发布管道中。实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

是的,可以更新/设置变量组的变量。并且将变量从构建持久化到释放是一个很好的选择。

您可以使用PowerShell任务按update variable gourps REST API更新变量组中的变量。和PowerShell脚本如下(假设更新/设置两个变量var1va2):

$body = '
{
  "variables": {
    "var1": {
      "value": "value1"
    },
    "var2": {
      "value": "value2"
    }
  },
  "type": "Vsts",
  "name": "variablegroup name",
  "description": "Updated variable group"
}
'
$bodyJson=$body | ConvertFrom-Json
Write-Output $bodyJson
$bodyString=$bodyJson | ConvertTo-Json -Depth 100
Write-Output $bodyString
$user="name"
$token="PAT"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

$Uri = "https://account.visualstudio.com/DefaultCollection/{project}/_apis/distributedtask/variablegroups/{variableGroupId}?api-version=4.1-preview"
$buildresponse = Invoke-RestMethod -Method Put -UseDefaultCredentials -ContentType application/json -Uri $Uri -Body $bodyString -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}