VSTS使用API​​在队列时设置构建参数

时间:2018-06-13 13:36:38

标签: rest azure-devops azure-pipelines

我需要从https://xsltfiddle.liberty-development.net/nc4NzQj/2

记录的REST API排队VSTS构建

https://docs.microsoft.com/en-us/rest/api/vsts/build/builds/queue?view=vsts-rest-4.1帮助我排队基本版本。 我成功使用个人访问令牌(PAT)进行身份验证和此json有效负载

{
    definition: {
        id: 19,
    }
}

我还需要将变量传递给构建。这些是我尝试过的不工作

的一些内容

不工作1

{
    definition: {
        id: 19,
        variables: {
            "my.var.one": { allowOverride: true, isSecret: false, value: "stringvalue" },
            "my.var.two": { allowOverride: true, isSecret: false, value: "numberValue" }
        }
    }
}

不工作2

{
    definition: {
        id: 19,
        variables: {
            "my.var.one": { value: "stringvalue" },
            "my.var.two": { value: "numberValue" }
        }
    }
}

不工作3

{
    definition: {
        id: 19,
        variables: {
            "my.var.one": "stringvalue",
            "my.var.two": "numberValue"
        }
    }
}

有人建议This answer可能有答案,因为VSTS和TFS相似。不幸的是,更改为参数变量并使用对象的字符串表示形式会产生相同的结果。从参数名称中删除点没有什么区别。尝试使用API​​ 3.1版也可以获得相同的结果。

不工作4

{
    definition: {
        id: 19,
        parameters: '{
            "myVarOne": "stringValue",
            "myVarTwo": "numberValue"
        }'
    }
}

在有效负载(或其他位置)中格式化变量以将它们传递给您尝试排队的构建的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

使用Chrome开发者工具在网络用户界面中捕获QUeue操作的有效负载,我猜测您正在寻找的格式是:

{
  "queue": {
    "id": 1
  },
  "definition": {
    "id": 45
  },
  "project": {
    "id": "a88536a2-a889-45a3-a955-ddf1af8aeba1"
  },
  "sourceBranch": "refs/heads/master",
  "sourceVersion": "",
  "reason": 1,
  "demands": [],
  "parameters": "{\"system.debug\":\"true\"}"
}