現在、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 ライブラリの機能に置き換えるにはどうすればよいでしょうか?
以前に試してみましたが、その問題に関する私の質問からわかるように、ファイルを正常にアップロードする方法がわからなかったため、あきらめなければなりませんでした。