我们目前正在 PycURL 的帮助下从 Python 脚本触发 Jenkins 作业。然而,我们希望摆脱 PycURL 依赖,但迄今为止收效甚微。使我们的场景更复杂的是我们需要发布一个文件作为参数。我们当前发布请求的 PycURL 逻辑如下所示:
url = "https://myjenkins/job/myjob/build"
with contextlib.closing(pycurl.Curl()) as curl:
curl.setopt(pycurl.URL, url)
curl.setopt(pycurl.USERPWD, "myuser:mypassword")
curl.setopt(pycurl.SSL_VERIFYPEER, False)
curl.setopt(pycurl.SSL_VERIFYHOST, False)
curl.setopt(pycurl.FAILONERROR, True)
data = [
("name", "integration.xml"),
("file0", (pycurl.FORM_FILE, "integration.xml")),
("json", "{'parameter': [{'name': 'integration.xml', 'file': 'file0'}]}"),
("Submit", "Build"),
]
curl.setopt(pycurl.HTTPPOST, data)
try:
curl.perform()
except pycurl.error, err:
raise JenkinsTriggerError(curl.errstr())
我们如何用标准 Python 库中的工具替换它?
我们之前尝试过,但不得不放弃,因为我们看不到如何成功上传文件,正如您从我关于该问题的问题中看到的那样。