我正在使用python来触发Jenkins作业。现在我使用的是pythonrequests
lib;我直接触发作业为:
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¶m2=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 上