Как запустить аутентифицированное задание Jenkins с параметром файла с помощью стандартной библиотеки Python

В настоящее время мы запускаем задания 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?

Мы уже пытались, но были вынуждены отказаться, поскольку не могли понять, как успешно загружать файлы, как вы можете видеть из моего вопроса по этой проблеме.

12
задан Community 23 May 2017 в 12:09
поделиться