Skip to content

Commit ab439d2

Browse files
committed
Merge remote-tracking branch 'pdalpra/http-request-fixes'
2 parents ac773b9 + 00a206f commit ab439d2

File tree

4 files changed

+29
-4
lines changed

4 files changed

+29
-4
lines changed

docs/Home.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Browse the Jenkins issue tracker to see any [open issues](https://issues.jenkins
2929
* 1.49 (unreleased)
3030
* Enhanced support for the [Sauce OnDemand Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Sauce+OnDemand+Plugin)
3131
([JENKINS-36370](https://issues.jenkins-ci.org/browse/JENKINS-36370))
32+
* Enhanced support for the [HTTP Request Plugin](https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin)
33+
([#879](https://github.com/jenkinsci/job-dsl-plugin/pull/879))
3234
* Updated [Structs Plugin](https://github.com/jenkinsci/structs-plugin) dependency to version 1.2
3335
* Improved support for [[Automatically Generated DSL]]: print deprecation warnings and show deprecated methods in API
3436
viewer

job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/HttpRequestContext.groovy

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
package javaposse.jobdsl.dsl.helpers.step
22

3-
import javaposse.jobdsl.dsl.Context
3+
import javaposse.jobdsl.dsl.AbstractContext
4+
import javaposse.jobdsl.dsl.JobManagement
5+
import javaposse.jobdsl.dsl.RequiresPlugin
46

57
import static javaposse.jobdsl.dsl.Preconditions.checkArgument
68

7-
class HttpRequestContext implements Context {
9+
class HttpRequestContext extends AbstractContext {
810
private static final Set<String> VALID_MODES = ['POST', 'GET', 'DELETE', 'PUT']
911

1012
String httpMode
1113
String authentication
1214
Boolean returnCodeBuildRelevant
1315
Boolean logResponseBody
16+
Boolean passBuildParameters
17+
18+
HttpRequestContext(JobManagement jobManagement) {
19+
super(jobManagement)
20+
}
1421

1522
/**
1623
* Sets the HTTP method to use. Must be one of {@code 'GET'}, {@code 'POST'}, {@code 'PUT'} or {@code 'DELETE'}.
@@ -40,4 +47,14 @@ class HttpRequestContext implements Context {
4047
void logResponseBody(boolean logResponseBody = true) {
4148
this.logResponseBody = logResponseBody
4249
}
50+
51+
/**
52+
* Allows to pass build parameters to the request URL. Defaults to {@code false}.
53+
*
54+
* @since 1.49
55+
*/
56+
@RequiresPlugin(id = 'http_request', minimumVersion = '1.8.7')
57+
void passBuildParameters(boolean passBuildParameters = true) {
58+
this.passBuildParameters = passBuildParameters
59+
}
4360
}

job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/StepContext.groovy

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -841,11 +841,14 @@ class StepContext extends AbstractExtensibleContext {
841841
*/
842842
@RequiresPlugin(id = 'http_request')
843843
void httpRequest(String requestUrl, @DslContext(HttpRequestContext) Closure closure = null) {
844-
HttpRequestContext context = new HttpRequestContext()
844+
HttpRequestContext context = new HttpRequestContext(jobManagement)
845845
ContextHelper.executeInContext(closure, context)
846846

847847
stepNodes << new NodeBuilder().'jenkins.plugins.http__request.HttpRequest' {
848848
url(requestUrl)
849+
if (context.passBuildParameters != null) {
850+
passBuildParameters(context.passBuildParameters)
851+
}
849852
if (context.httpMode != null) {
850853
httpMode(context.httpMode)
851854
}

job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/helpers/step/StepContextSpec.groovy

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2935,20 +2935,23 @@ class StepContextSpec extends Specification {
29352935
authentication('bob')
29362936
returnCodeBuildRelevant()
29372937
logResponseBody()
2938+
passBuildParameters()
29382939
}
29392940

29402941
then:
29412942
context.stepNodes.size() == 1
29422943
with(context.stepNodes[0]) {
29432944
name() == 'jenkins.plugins.http__request.HttpRequest'
2944-
children().size() == 5
2945+
children().size() == 6
29452946
url[0].value() == 'http://www.example.com'
29462947
httpMode[0].value() == 'GET'
29472948
authentication[0].value() == 'bob'
29482949
returnCodeBuildRelevant[0].value() == true
29492950
logResponseBody[0].value() == true
2951+
passBuildParameters[0].value() == true
29502952
}
29512953
1 * jobManagement.requirePlugin('http_request')
2954+
1 * jobManagement.requireMinimumPluginVersion('http_request', '1.8.7')
29522955
}
29532956

29542957
def 'call http request with invalid HTTP mode'() {

0 commit comments

Comments
 (0)