triggers
- это массив, поэтому вы не можете просто отредактировать его, вам нужно отредактировать triggers[0]
, то же самое, что и branchFilters
, вам нужно отредактировать branchFilters[0]
. Кроме того, вам не нужно прикасаться к triggerType
.
Все вышеизложенное предполагает, что в сборке уже есть триггер, и вы хотите отредактировать его, а не добавлять новый раздел триггера.
В массиве branchFilters
есть хитрость: если у вас есть только одна ветвь (например, master
), и вы хотите добавить другую ветку, вам нужно добавить ее в массив, а не просто редактировать branchFilters[0]
значение.
Последнее, что должно быть исправлено, это значение ветви, оно должно быть +refs/heads/branchName
, а не только имя ветви.
Итак, у меня есть конвейер с триггером ветки test
, и мне удалось отредактировать триггер на master
и feature/*
с помощью этого сценария:
# I get only one definition and update him, not iterate all my definitions
$definition = Invoke-RestMethod -Uri $url -Method Get
# Change the branch trigger from "test" to "master"
$definition.triggers[0].branchFilters[0] = "+refs/heads/master"
# Add another branch trigger - "feature/*"
$definition.triggers[0].branchFilters[0] += "+refs/heads/feature/*"
$body = $definition | ConvertTo-Json -Depth 10
Write-Host $body
Invoke-RestMethod -Uri $url -Method Put -ContentType application/json -Body $body