2016-07-05 8 views
0

HTTP Request Pluginを使用して、RESTベースのWebサービスを呼び出しています。これらの呼び出しでは、JSON形式のリクエスト本体にコンソール出力URLを渡したいと思います。JenkinsのHttpRequestプラグインのリクエスト本体の環境変数

環境変数${BUILD_URL}/consoleを使用してコンソール出力URLを構築しています。

環境変数の置換はURLでは機能していますが、要求本体では機能していません。コードを変更する際にプラグインのコードを変更する必要があります。誰かがJenkinsが変数置換をどのように正確に行い、なぜこの場合には機能しないのかについての情報を共有してください。以下は

は、JSONのリクエストボディです:

{'state':'4', 'short_description':'${BUILD_URL}console'} 

答えて

0

私は解決策を見つけ出すことができました。テスト済みで、動作していることを確認しました。

あなたはHttpRequest.javaperform方法で線の下に追加する必要があります。ちょうどあなたがperformHttpRequest(build, listener, evaluatedUrl, params)メソッドを呼び出す前に、あなたがそれで、環境変数の存在をrequestBodyメンバーを評価するための行を追加してください

public boolean perform(AbstractBuild<?,?> build, Launcher launcher, BuildListener listener){ throws InterruptedException, IOException 
requestBody = evaluate(requestBody, build.getBuildVariableResolver(), envVars); 
//rest of the code as it is 
}