TFS 2017 API;使用变量对构建进行排队

时间:2018-05-04 14:02:32

标签: tfs tfsbuild tfs2017

我正在尝试创建构建请求,并为TFS构建定义中定义的自定义变量指定新值。我假设我可以在不首先更新构建定义的情况下执行此操作。我将以下JSON发布到了URL:http://<server-name>/tfs/DefaultCollection/<project-name>/_apis/build/builds?api-version=3.1。构建排队但传入的变量值未覆盖默认值。我错过了什么?我是否需要以不同方式指定变量名称?

{
    "definition": {
        "id": 24,
        "variables": {
            "IssueNumber": {
                "value": "98765"
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您提供了错误的JSON结构。它是parameters,而不是variables,而且您指定键/值对的方式不正确。

此PowerShell代码段应指向正确的方向:

$url = 'http://test-tfs-instance:8080/tfs/myCollection'

$body = @{
    definition = @{
        id = 1435
    }
    parameters = '{"MyParam":"OverriddenValue","system.debug":"false"}'
}

Invoke-RestMethod -Uri "$($url)/TeamProject/_apis/build/builds?api-version=3.1" -UseDefaultCredentials -Method Post -ContentType 'application/json' -body ($body | convertto-json -Compress -Depth 10)

对于它的价值,通过在浏览器中打开开发人员工具并查看TFS UI所做的REST调用,可以发现这种事情是微不足道的。有时文档不清楚(就像在这种情况下一样),但是当你复制应用程序所做的相同REST调用时,很难搞清楚。

相关问题