有没有一种方法可以通过为params发送JSON来触发Jenkins参数化作业,而不使用查询param字符串



我正在使用python来触发Jenkins作业。现在我使用的是pythonrequestslib;我直接触发作业为:

response = requests.post("https://jenkinsurl/job/myJob/buildWithParameters", auth=(user, password), verify=False)

我需要将构建参数发送到作业。我看到的所有教程都指示在作业URL上以查询字符串的形式发送参数(例如,如果我想发送带有"val1"的参数"param1"和带有"val2"的"param2",我会发布如下:(

response = requests.post("https://jenkinsurl/job/myJob/buildWithParameters?param1=val1&param2=val2", auth=(user, password), verify=False)

问题是我需要发送敏感的params,而我不能将其作为URL的一部分以明文形式提供有没有办法将params作为邮件正文的一部分发送?我似乎找不到json需要的语法/结构来实现这一点

我能够通过将params直接传递到请求中的"data"选项来实现这一点。

因此,在上面的例子中(要将值为"val1"的参数"param1"和值为"val2"的"param2"发送到Jenkins作业,这是有效的:(

var jobParams = {'param1': 'val1', 'param2': 'val2'}
response = requests.post("https://jenkinsurl/job/myJob/buildWithParameters, data=jobParams, auth=(user, password), verify=False)

编辑:如果你面临这个问题,请确保不要通过将params发送到请求"params"arg来解决它-它会起作用(用params触发作业(,但它所做的只是为你生成查询字符串-这些param/值仍然会被附加在URL 上

最新更新