在Jenkins的HttpRequest插件的请求体中替换环境变量



我正在使用HTTP请求插件来调用基于REST的Web服务。在这些调用中,我想以JSON格式在请求体中传递控制台输出URL。

我正在使用环境变量${BUILD_URL}/console构造控制台输出URL。

环境变量替换对URL有效,但对请求体无效。任何关于代码更改的建议,需要对插件代码进行修改,以使其工作。是否有人可以分享有关Jenkins如何确切地做变量替换以及为什么它在这种情况下不工作的信息。

下面是JSON请求正文:

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

我能想出解决办法。测试并确认它有效。

您需要在HttpRequest.javaperform方法中添加下面一行:

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
}

请确保在调用performHttpRequest(build, listener, evaluatedUrl, params)方法之前添加行来评估requestBody成员中是否存在环境变量。

最新更新