Изменить значение переменной во всех определениях выпуска - PullRequest
0 голосов
/ 13 февраля 2019

Я использую TFS 2015. Во всех определениях выпуска (около 100) у меня есть переменная, определенная «Databasename» со значением.Теперь мне нужно изменить его значение для всех определений релиза, поэтому не могли бы вы сказать мне, как я могу это сделать.В TFS 2015 нет группы переменных. Я прочитал несколько документов в Интернете, но не нашел решения.

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Вы можете использовать следующий скрипт для изменения любой переменной:

$tfsUrl = "http://ServerName:Port/tfs/CollectionName/ProjectName"
$releaseDefurl = $tfsUrl + '/_apis/release/definitions?$expand=artifacts&api-version=3.2-preview.3'

$Env = "Environment Name"
$VariableName = "Variable Name"

$allreleaseDef = (Invoke-RestMethod -Uri ($releaseDefurl) -Method Get -UseDefaultCredentials).value |  Where-Object {$_.name -like "*Release Name*"} | select id,name

foreach ($release in $allreleaseDef)
{
    $ReleaseInfo = Invoke-RestMethod -Uri "$tfsUrl/_apis/Release/definitions/$($release.id)" -Method Get -UseDefaultCredentials

    ($ReleaseInfo.environments | where name -eq "$Env").variables.$VariableName.value = "NEW VALUE"

    $json  = $ReleaseInfo | ConvertTo-Json -depth 100

    Invoke-RestMethod -Uri "$tfsUrl/_apis/release/definitions/$($release.id)?api-version=3.2-preview.3" -Method Put -UseDefaultCredentials -ContentType "application/json" -Body $json 

}
0 голосов
/ 14 февраля 2019

Я не уверен, что tfs 2015 поддерживает эту версию rest api.Но вы можете попробовать это:

  1. Получить список определений релизов: Определения - Список

Сначала проверьте этот шаг.Вставьте в свой браузер URL:

http://your_server:port/tfs/{collection_name}/{project}/_apis/release/definitions?api-version=3.0
Получить одно определение выпуска: Определения - получить Обновить существующее определение выпуска (член переменных): Определения - Обновить

У меня есть определение для выпуска на моем сервере TFS 2015: мое определение выпуска:

enter image description here

Json от TFS:

enter image description here

...