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

标签 rest api jenkins

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

我可以通过发送到以下 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'
}

{
  "parameter": [
        {
            "name": "product",
            "value": "ALL"
        },
        {
            "name": "suites",
            "value": "ALL"
        },
        {
            "name": "markers",
            "value": "ALL"
        }
  ]
}

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

最佳答案

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

其他文档:https://wiki.jenkins.io/display/JENKINS/Remote+access+API

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

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

  2. 将参数作为 JSON data\payload 发送到 /build: http://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"}
                    ]
      }'

以下是上述每个调用的 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='{"参数": [{"名称":"产品", "值":"123"}, {"名称": "suites", "value":"high"}, {"name":"markers", "value":"Hello"}]}'

curl -X POST\ 'http://jenkins:8080/view/Orion_phase_2/job/test_remote_api_triggerring/buildWithParameters ?product=234&suites=333&markers=555'\ -H '授权:基本 c2hsb21pb...ODRlNjU1ZWI4MjAyOGFkMTJk'\ -H '缓存控制:无缓存'\ -H ' Jenkins -克鲁姆:0bed4c7...9031c735a'\ -H ' postman token :0fb2ef51-...-...-...-6430e9263c3b'

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

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

关于rest - Jenkins REST buildWithParameters 覆盖默认参数值的 JSON 格式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51508222/

相关文章:

design-patterns - 使用 ajax post、get、put、delete 等 vs html post 和 get 只在 spring 中的优缺点

django - 配置 Django-oauth-plus 时出错

node.js - Node (Express) - 通过 api 使用 express 发送 pdf

java - 如何在 Jenkins 上的 Gradle 构建中过滤测试而无需提交?

regex - 如何一次有效地将输入字符串与多个正则表达式进行匹配?

ios - NSMutableURLRequest 截断我的 URL

android - Jenkins为什么找不到Android SDK?

git - FaSTLane 匹配无法通过 SSH 连接

javascript - 如何在 Angular 中使用 HATEOAS REST API?

python - yfinance 不工作 - 接收 json.decoder.JSONDecodeError