В настоящее время мы запускаем задания Jenkins из скрипта Python с помощью PycURL.Мы хотели бы, однако, избавиться от зависимости 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?
Мы пробовали раньше, но нам пришлось датькак мы не могли видеть, как загрузить файлы успешно, как вы можете видеть из моего вопроса по этому вопросу .