Jenkins REST buildWithParameters的JSON格式是什么,以覆盖默认参数值

Raa*_*mEE 3 api rest jenkins

我可以通过将POST调用发送到http:// jenkins:8080 / view / Orion_phase_2 / job / test_remote_api_triggerring / buildWithParameters来构建具有其参数默认值的Jenkins作业

并且可以通过发送到以下URL来覆盖默认参数“产品”,“套房”和“标记”: http:// jenkins:8080 / view / Orion_phase_2 / job / test_remote_api_triggerring / buildWithParameters?product = ALL&suites = ALL&markers = ALL

但是我看到了一些示例,可以通过发送带有新值的JSON正文来覆盖参数。我正在尝试通过发送以下json主体来做到这一点。他们都不适合我。

{
        'product': 'ALL',
        'suites': 'ALL',
        'markers': 'ALL'
}
Run Code Online (Sandbox Code Playgroud)

{
  "parameter": [
        {
            "name": "product",
            "value": "ALL"
        },
        {
            "name": "suites",
            "value": "ALL"
        },
        {
            "name": "markers",
            "value": "ALL"
        }
  ]
}
Run Code Online (Sandbox Code Playgroud)

如果要覆盖参数“ product”,“ suites”和“ markers”的值,要发送什么JSON?

Raa*_*mEE 10

我将保留原始问题,并在此处详细说明触发参数化构建的各种API调用。这些是我使用的通话选项。

附加文档:https : //wiki.jenkins.io/display/JENKINS/Remote+access+API

作业包含3个参数,名称分别为:产品,套件,标记

  1. 将参数作为URL查询参数发送到/ buildWithParametershttp:// jenkins:8080 / view / Orion_phase_2 / job / test_remote_api_triggerring / buildWithParameters?product = ALL&suites = ALL&markers = ALL

  2. 将参数作为JSON数据\有效负载发送到/ buildhttp:// jenkins:8080 / view / Orion_phase_2 / job / test_remote_api_triggerring / build

JSON数据\有效负载不作为调用的json_body发送(这让我感到困惑),但是数据有效负载中的评分器为:

json:'{
       "parameter": [
                     {"name":"product", "value":"123"}, 
                     {"name":"suites", "value":"high"}, 
                     {"name":"markers", "value":"Hello"}
                    ]
      }'
Run Code Online (Sandbox Code Playgroud)

以下是上述每个调用的CURL命令:

curl -X POST -H“ Jenkins-Crumb:2e11fc9 ... 0ed4883a14a” http:// jenkins:8080 / view / Orion_phase_2 / job / test_remote_api_triggerring / build --user“ raameeil:228366f31 ... f655eb82058ad12d” --form json ='{“ parameter”:[{“ name”:“ product”,“ value”:“ 123”},{“ name”:“ suites”,“ value”:“ high”},{“ name”:“标记”,“值”:“ Hello”}]} '

curl -X POST \' http:// jenkins:8080 / view / Orion_phase_2 / job / test_remote_api_triggerring / buildWithParameters ?product = 234&suites = 333&markers = 555 '\ -H'授权:Basic c2hsb21pb ... ODRlNjU1ZWI4MjAyOGFkMTJk' -control:no-cache'\ -H'jenkins-crumb:0bed4c7 ... 9031c735a'\ -H'postman-token:0fb2ef51 -...-...-...- 6430e9263c3b'

向Python的请求 发送的内容为了在Python中发送上述调用,您需要传递:

  1. 标头= jenkins-crumb
  2. auth =您的(user_name,user_auth_token)的元组
  3. 数据=字典类型{'json':{“ parameter”:[....]}的json字符串