私はPythonリクエストを使ってGitLabビルドをトリガーしようとしています。通常、curl
コマンドでビルドを開始できます。PythonリクエストでGitLabをビルドする
例curlコマンド:
curl -X POST \
-F token=TOKEN \
-F ref=master \
-F "variables[UPLOAD_TO_S3]=true" \
https://gitlab.example.com/api/v4/projects/9/trigger/pipeline
私はsh
モジュールを使用してこの作業を取得することができますが、私はrequests
を使用して好みます。私は次のようにバリエーションを試してみた:私はとheaders
のparamなしで試してみました
data = {
'token': token,
'ref': master,
'variables[UPLOAD_TO_S3]': str(uploadS3),
}
headers = {'Content-Type': 'application/json'}
result = requests.post(_trigger_url, headers=headers, json=data)
。私はまた、params
、json
、files
、およびdata
を使用してdata
ディクテーションを渡そうとしました。すべて400または404のエラーが返ってきます。助言がありますか?
あなたは何をヘッダに渡していますか?私がヘッダー引数を完全に取り除くと、404エラーが発生します。 –
@JaySoyer私は明示的にヘッダを渡すわけではありません。私が示した行はビルドをトリガするために実行した唯一のものです( 'import requests'以外に)。 '{'User-Agent': 'python-requests/2.18.4'、 'Accept-Encoding': 'gzip、deflate'、 'Accept': '*/*'、 ' 'Content-Length': '47'、 'Content-Type': 'アプリケーション/ x-www-form-urlencoded'} 'のように、 – birryree
あなたの例の行では、明示的にヘッダを渡しています...これが私が尋ねた理由です。私の自動ヘッダは、python-requests 2.18.3を使用している以外は同じように見えます。 –