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

时间:2018-11-16 22:45:40

标签: jenkins

我正在使用python触发Jenkins作业。现在,我正在使用python requests lib;我直接将作业触发为:

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

我需要将构建参数发送到作业。我看到的所有教程都指示将参数作为作业URL上的查询字符串发送(示例-如果我想将参数'param1'与'val1'发送给参数,并将'param2'与'val2'进行发送,我将发布以下内容: )

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

问题是我需要发送敏感的参数,而我不能以纯文本形式提供这些参数作为URL的一部分。 是否可以将参数作为帖子正文的一部分发送?为此,我似乎找不到json所需的语法/结构。

1 个答案:

答案 0 :(得分:1)

我可以通过将参数直接传递给请求中的“数据”选项来使其工作。

因此在上面的示例中(向Jenkins作业发送了值为'val1'的参数'param1'和值为'val2'的'param2',这是可行的):

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

编辑:如果您遇到此问题,请确保不要通过将参数发送给请求的'params'arg来解决问题-它可以工作(用params触发工作),但是它所做的只是生成查询字符串为您服务-这些参数/值仍会粘贴在URL上