From 00a206f848d39d85a6c0ba5f952c58a2381fc674 Mon Sep 17 00:00:00 2001 From: Pierre Dal-Pra Date: Sat, 16 Jul 2016 00:12:58 +0200 Subject: [PATCH] Update httpRequest for recent versions of http-request-plugin --- docs/Home.md | 1 + .../jobdsl/dsl/helpers/step/HttpRequestContext.groovy | 10 ++++++++++ .../jobdsl/dsl/helpers/step/StepContext.groovy | 5 ++++- .../jobdsl/dsl/helpers/step/StepContextSpec.groovy | 6 +++--- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/docs/Home.md b/docs/Home.md index 6faf66f5c6..487075887e 100644 --- a/docs/Home.md +++ b/docs/Home.md @@ -35,6 +35,7 @@ Browse the Jenkins issue tracker to see any [open issues](https://issues.jenkins * Added a `SEED_JOB` script variable which provides access to the seed job, see [Job DSL Commands](Job-DSL-Commands#seed-job) * Removed anything that has been deprecated in 1.42, see [Migration](Migration#migrating-to-142) + * Enhanced support for the [HTTP Request Plugin](https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin) * 1.48 (June 24 2016) * Added option to ignore missing DSL script files or empty wildcards ([JENKINS-34060](https://issues.jenkins-ci.org/browse/JENKINS-34060)) diff --git a/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/HttpRequestContext.groovy b/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/HttpRequestContext.groovy index f4c87b4b86..c92677d016 100644 --- a/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/HttpRequestContext.groovy +++ b/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/HttpRequestContext.groovy @@ -11,6 +11,7 @@ class HttpRequestContext implements Context { String authentication Boolean returnCodeBuildRelevant Boolean logResponseBody + Boolean passBuildParameters /** * Sets the HTTP method to use. Must be one of {@code 'GET'}, {@code 'POST'}, {@code 'PUT'} or {@code 'DELETE'}. @@ -40,4 +41,13 @@ class HttpRequestContext implements Context { void logResponseBody(boolean logResponseBody = true) { this.logResponseBody = logResponseBody } + + /** + * Allows to pass build parameters to the request URL. Defaults to {@code false}. + * + * @since 1.49 + */ + void passBuildParameters(boolean passBuildParameters = true) { + this.passBuildParameters = passBuildParameters + } } diff --git a/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/StepContext.groovy b/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/StepContext.groovy index d5adcffb1b..0dd5c28752 100644 --- a/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/StepContext.groovy +++ b/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/StepContext.groovy @@ -839,13 +839,16 @@ class StepContext extends AbstractExtensibleContext { * * @since 1.28 */ - @RequiresPlugin(id = 'http_request') + @RequiresPlugin(id = 'http_request', minimumVersion = '1.8.7') void httpRequest(String requestUrl, @DslContext(HttpRequestContext) Closure closure = null) { HttpRequestContext context = new HttpRequestContext() ContextHelper.executeInContext(closure, context) stepNodes << new NodeBuilder().'jenkins.plugins.http__request.HttpRequest' { url(requestUrl) + if (context.passBuildParameters != null) { + passBuildParameters(context.passBuildParameters) + } if (context.httpMode != null) { httpMode(context.httpMode) } diff --git a/job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/helpers/step/StepContextSpec.groovy b/job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/helpers/step/StepContextSpec.groovy index 18ea6ec702..fe6eda49a4 100644 --- a/job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/helpers/step/StepContextSpec.groovy +++ b/job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/helpers/step/StepContextSpec.groovy @@ -2925,7 +2925,7 @@ class StepContextSpec extends Specification { children().size() == 1 url[0].value() == 'http://www.example.com' } - 1 * jobManagement.requirePlugin('http_request') + 1 * jobManagement.requireMinimumPluginVersion('http_request', '1.8.7') } def 'call http request with all options'() { @@ -2948,7 +2948,7 @@ class StepContextSpec extends Specification { returnCodeBuildRelevant[0].value() == true logResponseBody[0].value() == true } - 1 * jobManagement.requirePlugin('http_request') + 1 * jobManagement.requireMinimumPluginVersion('http_request', '1.8.7') } def 'call http request with invalid HTTP mode'() { @@ -2975,7 +2975,7 @@ class StepContextSpec extends Specification { url[0].value() == 'http://www.example.com' httpMode[0].value() == mode } - 1 * jobManagement.requirePlugin('http_request') + 1 * jobManagement.requireMinimumPluginVersion('http_request', '1.8.7') where: mode << ['GET', 'POST', 'PUT', 'DELETE']