問題タブ [jenkins-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - REST 実行がステータス コード 302 で失敗する
REST API を使用して Jenkins のジョブの名前を変更しようとしていますが、正しい REST エンドポイントを使用しているにもかかわらず、CURL を使用するとステータス コードが 302 Found になります。郵便配達員は正常に動作します。
curl -v -X POST <jenkins_url>/job/<old_job_name>/doRename?newName=cr%20test -H 'Authorization: Basic E45tg646YWRtaW4tryu=' -H 'Cache-Control: no-cache' -H 'Jenkins-Crumb: <CSRF token>'
CURL を使用してテストした場合のステータス コード:HTTP/1.1 302 Found
このhttps://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlによると、ステータス コード 302 は、要求されたリソースが別の URI に一時的に存在することを意味します。
これは、すべての Jenkins REST API の問題です。
すべての Jenkins REST リクエストで、HTTP/HTTPS 経由で行われる 2 つの呼び出しがあるように見えます。最初の呼び出しは要求ごとに適切な変更を行い、2 番目の呼び出しは要求された変更が行われたかどうかを確認します。
重要な注意 - 302 ステータス コードが表示されますが、バックグラウンドでは目的を果たします。上記のステートメントが正しい場合、ここでは、変更が行われたかどうかを確認する 2 回目の呼び出しで失敗しています。
この問題を解決する方法を提案してください。