14

我想通过 REST API 开始构建 Azure Pipelines。有一个用于排队构建的 API,但我找不到定义变量的方法。

4

4 回答 4

37

当您需要在排队时设置值时,接受的答案并不能真正回答问题。该解决方案实际上非常简单,您只需向parametersjson 有效负载添加一个字段。内容应该是一个包含参数 Ex 的 json 字符串(不是直接的对象):

{
    "parameters":  "{\"ReleaseNumber\":  \"1.0.50\", \"AnotherParameter\":  \"a value\"}",
    "definition":  {
                       "id":  2
                   }
}

编辑:此功能现在正确记录为an optional stringified dictionary. 请参阅https://www.visualstudio.com/fr-fr/docs/integrate/api/build/builds#queue-a-build

于 2016-03-31T17:28:22.743 回答
3

变量包含在定义中,您可以更新构建定义以首先通过构建定义 api 设置变量,然后将构建排队。

以下是通过 build-definition api 获取的变量部分:

  "variables": {
    "system.debug": {
      "value": "false",
      "allowOverride": true
    },
    "BuildConfiguration": {
      "value": "release",
      "allowOverride": true
    },
    "BuildPlatform": {
      "value": "any cpu",
      "allowOverride": true
    }
  },
于 2015-12-18T02:24:13.447 回答
1

对于任何对此有问题的人(我做过),自接受答案以来使用的 API 有所不同(这对我来说根本不起作用)。但是按照 Cyprien Autexier 的建议,我查看了引擎盖(Firefox 开发工具),发现门户不再使用 Builds API。它使用管道之一(https://docs.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run-pipeline?view=azure-devops-rest-6.1)。有了这个,完美地工作。

于 2021-08-10T07:25:31.303 回答
0

对于任何看到这个的人,我都能让它与'templateParameters'一起工作,它允许你在 7.1 版上发送一个Object而不是一个String

  • 方法:POST
  • 网址:https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.1-preview.7
  • 正文:JSON 示例:
    {
      "sourceBranch":"Development",
      "definition": {
        "id": 5
      }
      "templateParameters": {
        "PARAMETER1": "value1",
        "parameter2": "valuex"
      }
    }
    

文档:https ://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-7.1

于 2022-02-09T19:29:06.327 回答