我正在尝试使用 PowerShell 通过 REST API 更新构建定义。
使用的脚本是:
$url = "http://tfs:8080/tfs/collection/project/_apis/build/definitions/$($buildId)?api-version=2.0"
$obj = Invoke-RestMethod -Uri $url2 -Method Get -ContentType "application/json" -UseDefaultCredentials
$json = ConvertTo-Json $obj
Invoke-RestMethod -Uri $url -Method Put -Body $json -ContentType "application/json" -UseDefaultCredentials
首先,我尝试使用新的空定义,但出现以下错误:
集合必须至少包含一个元素。参数名称:define.Options.Inputs
所以我添加了一个额外的代码来从返回的 json 中删除“选项”部分:
if($obj.options -ne $null){
$obj.options = $null }
并且更新有效。但是,当我在生产中的“真实”现有构建定义上使用代码时,我会收到另一个错误:
集合必须至少包含一个元素。参数名称:define.RetentionRules.Rule.Branches.Filter
我正在使用 TFS2015 更新 3。
为什么不能通过 REST API 对构建定义进行简单更新(没有任何修改)?