From df9e0129c081fd0f8219aed410182df70d14ccea Mon Sep 17 00:00:00 2001 From: Tomas Bjerre Date: Tue, 28 Aug 2018 06:54:51 +0200 Subject: [PATCH] Updating fmt-maven-plugin * Adding another simpler test case on request parameters * Testing github tag push * Adding more testcases on Bitbucket Server and Cloud --- .gitignore | 1 + CHANGELOG.md | 16 + ISSUE_TEMPLATE | 9 +- README.md | 10 +- debug.sh | 2 +- pom.xml | 2 +- run.sh | 2 +- sandbox/pipeline.jenkinsfile | 25 + .../jenkinsci/plugins/gwt/GenericCause.java | 2 +- .../plugins/gwt/GenericHeaderVariable.java | 2 +- .../plugins/gwt/GenericRequestVariable.java | 2 +- .../jenkinsci/plugins/gwt/GenericTrigger.java | 14 +- .../plugins/gwt/GenericVariable.java | 2 +- .../gwt/GenericWebHookRequestReceiver.java | 12 +- .../GenericWebhookEnvironmentContributor.java | 7 +- .../plugins/gwt/ParameterActionUtil.java | 6 +- .../org/jenkinsci/plugins/gwt/Renderer.java | 3 +- .../plugins/gwt/jobfinder/JobFinder.java | 13 +- .../gwt/jobfinder/JobFinderImpersonater.java | 8 +- .../plugins/gwt/resolvers/JsonFlattener.java | 5 +- .../PostContentParameterResolver.java | 9 +- .../gwt/resolvers/RequestHeaderResolver.java | 6 +- .../resolvers/RequestParameterResolver.java | 6 +- .../gwt/resolvers/VariablesResolver.java | 1 - .../plugins/gwt/resolvers/XmlFlattener.java | 2 - .../gwt/GenericTriggerResultsTest.java | 3 +- .../GenericWebHookRequestReceiverTest.java | 1 - .../plugins/gwt/ParameterActionUtilTest.java | 6 +- .../jenkinsci/plugins/gwt/RendererTest.java | 1 - .../gwt/VariablesResolverHeaderTest.java | 1 - .../gwt/VariablesResolverJsonPathTest.java | 6 +- ...VariablesResolverRequestParameterTest.java | 38 +- .../gwt/VariablesResolverXPathTest.java | 6 +- .../plugins/gwt/bdd/FeatureState.java | 1 - .../jenkinsci/plugins/gwt/bdd/Stepdefs.java | 22 +- .../plugins/gwt/jobfinder/JobFinderTest.java | 10 +- .../bitbucket-cloud-pull-request.feature | 66 ++ .../bitbucket-cloud-tag.feature | 89 +++ .../bitbucket-cloud/pullrequest-commented.txt | 276 +++++++++ .../bitbucket-cloud/pullrequest-created.txt | 199 ++++++ .../bitbucket-cloud/pullrequest-updated.txt | 224 +++++++ .../gwt/bdd/bitbucket-cloud/repo-push.txt | 574 ++++++++++++++++++ .../gwt/bdd/bitbucket-cloud/tag-push.txt | 234 +++++++ .../bitbucket-server-pull-request.feature | 134 ++++ .../bitbucket-server-tag.feature | 153 +++++ .../bitbucket-server/pullrequest-opened.txt | 90 +++ .../gwt/bdd/bitbucket-server/tag-push.txt | 44 ++ .../gwt/bdd/filter-with-variables.feature | 2 +- .../bdd/github/github-pull-request.feature | 172 ++++++ .../github-push-get-changed-files.feature | 2 +- .../github-push-specific-branches.feature | 6 +- .../gwt/bdd/github/github-push-tag.feature | 47 ++ ...-push-trigger-unless-specific-user.feature | 12 +- ...trigger-when-specific-file-changes.feature | 14 +- .../bdd/gitlab/gitlab-mergerequest.feature | 4 +- .../gwt/bdd/gitlab/gitlab-push.feature | 10 +- .../gwt/bdd/gitlab/gitlab-tag_push.feature | 4 +- .../plugins/gwt/bdd/jsonpath.feature | 2 +- 58 files changed, 2483 insertions(+), 137 deletions(-) create mode 100644 sandbox/pipeline.jenkinsfile create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/bitbucket-cloud-pull-request.feature create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/bitbucket-cloud-tag.feature create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-commented.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-created.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-updated.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/repo-push.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/tag-push.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/bitbucket-server-pull-request.feature create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/bitbucket-server-tag.feature create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/pullrequest-opened.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/tag-push.txt create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-pull-request.feature create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-tag.feature diff --git a/.gitignore b/.gitignore index c0803b8..ff28203 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ target work .idea +*iml diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cb872d..3aa15de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Generic Webhook Plugin Changelog Changelog of Generic Webhook Plugin. +## Unreleased +### No issue + +**Adding more testcases on Bitbucket Server and Cloud** + + +[f0309fe0263be8b](https://github.com/jenkinsci/generic-webhook-trigger-plugin/commit/f0309fe0263be8b) Tomas Bjerre *2018-09-04 09:04:58* + +**Updating fmt-maven-plugin** + + * Adding another simpler test case on request parameters + * Testing github tag push + +[a1522b6680bcf99](https://github.com/jenkinsci/generic-webhook-trigger-plugin/commit/a1522b6680bcf99) Tomas Bjerre *2018-09-02 06:38:31* + + ## 1.43 (2018-08-25 14:03:35) ### GitHub [#70](https://github.com/jenkinsci/generic-webhook-trigger-plugin/issues/70) How to specify the TOKEN using Job DSL? *question* diff --git a/ISSUE_TEMPLATE b/ISSUE_TEMPLATE index d2dfdb4..bdb711f 100644 --- a/ISSUE_TEMPLATE +++ b/ISSUE_TEMPLATE @@ -1,8 +1,11 @@ -When reporting a bug, please try to provide as much information as possible. +When reporting a bug, please **try** to provide as much information as possible. * Plugin version used. + * Jenkins version used. * Your configuration. - * Variables configured, names, expressions... + * Variables configured, names, expressions... + * Pipeline script + * Build job log * Post content received. It can be found in the job execution log. People using GitHub often forget to set the content type in "Manage webhook" when configuring the webhook at GitHub. * A `curl` command and its response. * Expected result and actual result. @@ -13,7 +16,7 @@ You may also have a look at the test cases as they should answer the most common If you are fiddling with expressions, you may want to checkout: -* [This JSONPath site](https://jsonpath.curiousconcept.com/) +* [This JSONPath site](http://jsonpath.herokuapp.com/) * [This XPath site](http://www.freeformatter.com/xpath-tester.html) * [This regexp site](https://jex.im/regulex/) diff --git a/README.md b/README.md index 8cc8b3a..89cc9ff 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ This is a Jenkins plugin that can: - 1. Receive any HTTP request, JENKINS_URL/generic-webhook-trigger/invoke + 1. Receive any HTTP request, `JENKINS_URL/generic-webhook-trigger/invoke` 2. Extract values - * From POST content with [JSONPath](https://github.com/json-path/JsonPath) or [XPath](https://www.w3schools.com/xml/xpath_syntax.asp) - * From the query parameters - * From the headers + * From `POST` content with [JSONPath](https://github.com/json-path/JsonPath) or [XPath](https://www.w3schools.com/xml/xpath_syntax.asp) + * From the `query` parameters + * From the `headers` 3. Trigger a build with those values contribute as variables @@ -68,7 +68,7 @@ The token can be supplied as a: If you are fiddling with expressions, you may want to checkout: -* [This JSONPath site](https://jsonpath.curiousconcept.com/) +* [This JSONPath site](http://jsonpath.herokuapp.com/) * [This XPath site](http://www.freeformatter.com/xpath-tester.html) * [This regexp site](https://jex.im/regulex/) diff --git a/debug.sh b/debug.sh index f24998a..8a9961b 100755 --- a/debug.sh +++ b/debug.sh @@ -1,3 +1,3 @@ #!/bin/sh -mvnDebug -q hpi:run -Djava.util.logging.config.file=logging.properties -Djenkins.version=2.121.1 -Denforcer.skip=true +mvnDebug -q hpi:run -Djava.util.logging.config.file=logging.properties -Djenkins.version=2.121.3 -Denforcer.skip=true diff --git a/pom.xml b/pom.xml index f19f29d..1d9d1ad 100644 --- a/pom.xml +++ b/pom.xml @@ -147,7 +147,7 @@ Changelog of Generic Webhook Plugin. com.coveo fmt-maven-plugin - 1.3.0 + 2.5.1 diff --git a/run.sh b/run.sh index 6ff9d9c..3654155 100755 --- a/run.sh +++ b/run.sh @@ -1,2 +1,2 @@ #!/bin/sh -mvn -q hpi:run -Djava.util.logging.config.file=logging.properties -Djenkins.version=2.121.1 -Denforcer.skip=true +mvn -q hpi:run -Djava.util.logging.config.file=logging.properties -Djenkins.version=2.121.3 -Denforcer.skip=true diff --git a/sandbox/pipeline.jenkinsfile b/sandbox/pipeline.jenkinsfile new file mode 100644 index 0000000..ad4f5a8 --- /dev/null +++ b/sandbox/pipeline.jenkinsfile @@ -0,0 +1,25 @@ +pipeline { + agent any + triggers { + GenericTrigger( + genericVariables: [ + [key: 'ref', value: '$.ref'] + ], + + causeString: 'Triggered on $ref', + + printContributedVariables: true, + printPostContent: true, + + regexpFilterText: '$ref', + regexpFilterExpression: 'refs/heads/master' + ) + } + stages { + stage('Some step') { + steps { + sh "echo $ref" + } + } + } +} diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericCause.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericCause.java index 59d3ac1..4755e9b 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericCause.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericCause.java @@ -1,8 +1,8 @@ package org.jenkinsci.plugins.gwt; import static com.google.common.base.Strings.isNullOrEmpty; -import hudson.model.Cause; +import hudson.model.Cause; import java.util.Map; public class GenericCause extends Cause { diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericHeaderVariable.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericHeaderVariable.java index 2b77f71..5fb3792 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericHeaderVariable.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericHeaderVariable.java @@ -1,10 +1,10 @@ package org.jenkinsci.plugins.gwt; import static com.google.common.base.Preconditions.checkNotNull; + import hudson.Extension; import hudson.model.AbstractDescribableImpl; import hudson.model.Descriptor; - import org.kohsuke.stapler.DataBoundConstructor; public class GenericHeaderVariable extends AbstractDescribableImpl { diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericRequestVariable.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericRequestVariable.java index 0cecde5..ccbc25f 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericRequestVariable.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericRequestVariable.java @@ -1,10 +1,10 @@ package org.jenkinsci.plugins.gwt; import static com.google.common.base.Preconditions.checkNotNull; + import hudson.Extension; import hudson.model.AbstractDescribableImpl; import hudson.model.Descriptor; - import org.kohsuke.stapler.DataBoundConstructor; public class GenericRequestVariable extends AbstractDescribableImpl { diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java index 968019a..5244d10 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java @@ -5,14 +5,6 @@ import static org.jenkinsci.plugins.gwt.Renderer.isMatching; import static org.jenkinsci.plugins.gwt.Renderer.renderText; -import java.util.List; -import java.util.Map; - -import org.jenkinsci.Symbol; -import org.jenkinsci.plugins.gwt.resolvers.VariablesResolver; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.DataBoundSetter; - import hudson.Extension; import hudson.model.CauseAction; import hudson.model.Item; @@ -21,7 +13,13 @@ import hudson.model.ParametersDefinitionProperty; import hudson.triggers.Trigger; import hudson.triggers.TriggerDescriptor; +import java.util.List; +import java.util.Map; import jenkins.model.ParameterizedJobMixIn; +import org.jenkinsci.Symbol; +import org.jenkinsci.plugins.gwt.resolvers.VariablesResolver; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.DataBoundSetter; public class GenericTrigger extends Trigger> { diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericVariable.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericVariable.java index 2feda19..b1d1436 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericVariable.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericVariable.java @@ -2,10 +2,10 @@ import static com.google.common.base.Preconditions.checkNotNull; import static org.jenkinsci.plugins.gwt.ExpressionType.JSONPath; + import hudson.Extension; import hudson.model.AbstractDescribableImpl; import hudson.model.Descriptor; - import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericWebHookRequestReceiver.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericWebHookRequestReceiver.java index a14b57c..755b2bb 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericWebHookRequestReceiver.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericWebHookRequestReceiver.java @@ -6,6 +6,10 @@ import static java.util.logging.Level.INFO; import static java.util.logging.Level.SEVERE; +import com.google.common.annotations.VisibleForTesting; +import hudson.Extension; +import hudson.model.UnprotectedRootAction; +import hudson.security.csrf.CrumbExclusion; import java.io.IOException; import java.util.Collections; import java.util.Enumeration; @@ -13,23 +17,15 @@ import java.util.List; import java.util.Map; import java.util.logging.Logger; - import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - import org.apache.commons.io.IOUtils; import org.jenkinsci.plugins.gwt.jobfinder.JobFinder; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerRequest; -import com.google.common.annotations.VisibleForTesting; - -import hudson.Extension; -import hudson.model.UnprotectedRootAction; -import hudson.security.csrf.CrumbExclusion; - @Extension public class GenericWebHookRequestReceiver extends CrumbExclusion implements UnprotectedRootAction { diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericWebhookEnvironmentContributor.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericWebhookEnvironmentContributor.java index e8ebc4b..3c97d37 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericWebhookEnvironmentContributor.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericWebhookEnvironmentContributor.java @@ -1,21 +1,18 @@ package org.jenkinsci.plugins.gwt; +import com.google.common.base.Charsets; import hudson.EnvVars; import hudson.Extension; -import hudson.model.TaskListener; import hudson.model.EnvironmentContributor; import hudson.model.Run; - +import hudson.model.TaskListener; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.Map; - import javax.annotation.Nonnull; -import com.google.common.base.Charsets; - @Extension public class GenericWebhookEnvironmentContributor extends EnvironmentContributor { private static final String CONTRIBUTING_VARIABLES = diff --git a/src/main/java/org/jenkinsci/plugins/gwt/ParameterActionUtil.java b/src/main/java/org/jenkinsci/plugins/gwt/ParameterActionUtil.java index 1e58f17..600e302 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/ParameterActionUtil.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/ParameterActionUtil.java @@ -3,17 +3,15 @@ import static com.google.common.base.Strings.isNullOrEmpty; import static com.google.common.collect.Lists.newArrayList; -import java.util.List; -import java.util.Map; - import com.cloudbees.plugins.credentials.CredentialsParameterValue; - import hudson.model.BooleanParameterValue; import hudson.model.ParameterDefinition; import hudson.model.ParameterValue; import hudson.model.ParametersAction; import hudson.model.ParametersDefinitionProperty; import hudson.model.StringParameterValue; +import java.util.List; +import java.util.Map; public class ParameterActionUtil { diff --git a/src/main/java/org/jenkinsci/plugins/gwt/Renderer.java b/src/main/java/org/jenkinsci/plugins/gwt/Renderer.java index 12daf86..e1c3733 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/Renderer.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/Renderer.java @@ -4,6 +4,7 @@ import static java.util.logging.Level.FINE; import static java.util.regex.Pattern.compile; +import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -12,8 +13,6 @@ import java.util.Set; import java.util.logging.Logger; -import com.google.common.annotations.VisibleForTesting; - public class Renderer { private static Logger LOGGER = Logger.getLogger(Renderer.class.getSimpleName()); diff --git a/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinder.java b/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinder.java index 75eb266..ec79cd3 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinder.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinder.java @@ -2,19 +2,16 @@ import static com.google.common.base.Strings.isNullOrEmpty; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.jenkinsci.plugins.gwt.FoundJob; -import org.jenkinsci.plugins.gwt.GenericTrigger; - import com.google.common.annotations.VisibleForTesting; - import hudson.model.BuildAuthorizationToken; import hudson.triggers.Trigger; import hudson.triggers.TriggerDescriptor; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import jenkins.model.ParameterizedJobMixIn.ParameterizedJob; +import org.jenkinsci.plugins.gwt.FoundJob; +import org.jenkinsci.plugins.gwt.GenericTrigger; public final class JobFinder { diff --git a/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderImpersonater.java b/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderImpersonater.java index f6fb8c5..b599718 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderImpersonater.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderImpersonater.java @@ -1,13 +1,11 @@ package org.jenkinsci.plugins.gwt.jobfinder; -import java.util.List; - -import org.acegisecurity.context.SecurityContext; -import org.acegisecurity.context.SecurityContextHolder; - import hudson.security.ACL; +import java.util.List; import jenkins.model.Jenkins; import jenkins.model.ParameterizedJobMixIn.ParameterizedJob; +import org.acegisecurity.context.SecurityContext; +import org.acegisecurity.context.SecurityContextHolder; public class JobFinderImpersonater { public List getAllParameterizedJobsByImpersonation() { diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/JsonFlattener.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/JsonFlattener.java index 7fea2c2..d87d267 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/JsonFlattener.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/JsonFlattener.java @@ -4,13 +4,12 @@ import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.filter; import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.toVariableName; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - public class JsonFlattener { private static Gson GSON = new GsonBuilder() // diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/PostContentParameterResolver.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/PostContentParameterResolver.java index b0388c6..39fca4f 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/PostContentParameterResolver.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/PostContentParameterResolver.java @@ -6,28 +6,25 @@ import static org.jenkinsci.plugins.gwt.ExpressionType.JSONPath; import static org.jenkinsci.plugins.gwt.ExpressionType.XPath; +import com.google.common.base.Charsets; +import com.jayway.jsonpath.JsonPath; +import com.jayway.jsonpath.PathNotFoundException; import java.io.ByteArrayInputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Logger; - import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathFactory; - import org.jenkinsci.plugins.gwt.GenericVariable; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; -import com.google.common.base.Charsets; -import com.jayway.jsonpath.JsonPath; -import com.jayway.jsonpath.PathNotFoundException; - public class PostContentParameterResolver { private static final Logger LOGGER = Logger.getLogger(VariablesResolver.class.getName()); diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestHeaderResolver.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestHeaderResolver.java index 2b8bf3f..b56dfc9 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestHeaderResolver.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestHeaderResolver.java @@ -5,15 +5,13 @@ import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.filter; import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.toVariableName; +import com.google.common.base.Optional; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; - import org.jenkinsci.plugins.gwt.GenericHeaderVariable; -import com.google.common.base.Optional; - public class RequestHeaderResolver { public RequestHeaderResolver() {} @@ -36,7 +34,7 @@ public Map getRequestHeaders( found.put(toVariableName(headerName).toLowerCase() + "_" + i, filteredValue); final boolean firstValue = i == 0; if (firstValue) { - //Users will probably expect this variable for parameters that are never a list + // Users will probably expect this variable for parameters that are never a list found.put(toVariableName(headerName).toLowerCase(), filteredValue); } i++; diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestParameterResolver.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestParameterResolver.java index fbd0aac..0beded9 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestParameterResolver.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestParameterResolver.java @@ -5,14 +5,12 @@ import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.filter; import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.toVariableName; +import com.google.common.base.Optional; import java.util.List; import java.util.Map; import java.util.Map.Entry; - import org.jenkinsci.plugins.gwt.GenericRequestVariable; -import com.google.common.base.Optional; - public class RequestParameterResolver { public RequestParameterResolver() {} @@ -35,7 +33,7 @@ public Map getRequestParameters( resolvedVariables.put(toVariableName(requestParamName) + "_" + i, filteredValue); final boolean firstAndOnlyValue = i == 0 && values.length == 1; if (firstAndOnlyValue) { - //Users will probably expect this variable for parameters that are never a list + // Users will probably expect this variable for parameters that are never a list resolvedVariables.put(toVariableName(requestParamName), filteredValue); } } diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/VariablesResolver.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/VariablesResolver.java index 1c6c283..8d1cae0 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/VariablesResolver.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/VariablesResolver.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; - import org.jenkinsci.plugins.gwt.GenericHeaderVariable; import org.jenkinsci.plugins.gwt.GenericRequestVariable; import org.jenkinsci.plugins.gwt.GenericVariable; diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/XmlFlattener.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/XmlFlattener.java index db8d844..70debe9 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/XmlFlattener.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/XmlFlattener.java @@ -9,13 +9,11 @@ import java.io.StringWriter; import java.util.Map; - import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; - import org.jenkinsci.plugins.gwt.GenericVariable; import org.w3c.dom.Node; import org.w3c.dom.NodeList; diff --git a/src/test/java/org/jenkinsci/plugins/gwt/GenericTriggerResultsTest.java b/src/test/java/org/jenkinsci/plugins/gwt/GenericTriggerResultsTest.java index 727dd8b..1eb8820 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/GenericTriggerResultsTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/GenericTriggerResultsTest.java @@ -3,10 +3,9 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import hudson.model.Queue.Item; +import hudson.model.Queue.Item; import java.util.Map; - import org.junit.Test; public class GenericTriggerResultsTest { diff --git a/src/test/java/org/jenkinsci/plugins/gwt/GenericWebHookRequestReceiverTest.java b/src/test/java/org/jenkinsci/plugins/gwt/GenericWebHookRequestReceiverTest.java index b59f248..ad198ed 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/GenericWebHookRequestReceiverTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/GenericWebHookRequestReceiverTest.java @@ -10,7 +10,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - import org.junit.Test; import org.kohsuke.stapler.StaplerRequest; diff --git a/src/test/java/org/jenkinsci/plugins/gwt/ParameterActionUtilTest.java b/src/test/java/org/jenkinsci/plugins/gwt/ParameterActionUtilTest.java index 1f41daf..b3aedd1 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/ParameterActionUtilTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/ParameterActionUtilTest.java @@ -2,17 +2,15 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.jenkinsci.plugins.gwt.ParameterActionUtil.createParameterAction; + +import com.google.common.collect.ImmutableMap; import hudson.model.BooleanParameterDefinition; import hudson.model.ParametersAction; import hudson.model.ParametersDefinitionProperty; import hudson.model.StringParameterDefinition; - import java.util.Map; - import org.junit.Test; -import com.google.common.collect.ImmutableMap; - public class ParameterActionUtilTest { @Test diff --git a/src/test/java/org/jenkinsci/plugins/gwt/RendererTest.java b/src/test/java/org/jenkinsci/plugins/gwt/RendererTest.java index a8c7f77..fd10aaa 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/RendererTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/RendererTest.java @@ -10,7 +10,6 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; - import org.junit.Before; import org.junit.Test; diff --git a/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverHeaderTest.java b/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverHeaderTest.java index c459ec0..e6635b9 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverHeaderTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverHeaderTest.java @@ -7,7 +7,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - import org.jenkinsci.plugins.gwt.resolvers.VariablesResolver; import org.junit.Test; diff --git a/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverJsonPathTest.java b/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverJsonPathTest.java index d7d8889..3f986c8 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverJsonPathTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverJsonPathTest.java @@ -3,17 +3,15 @@ import static com.google.common.collect.Lists.newArrayList; import static org.assertj.core.api.Assertions.assertThat; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.jenkinsci.plugins.gwt.resolvers.VariablesResolver; import org.junit.Test; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; - public class VariablesResolverJsonPathTest { private final Map> headers = new HashMap<>(); private final List genericHeaderVariables = new ArrayList<>(); diff --git a/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverRequestParameterTest.java b/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverRequestParameterTest.java index 078e0ff..6769363 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverRequestParameterTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverRequestParameterTest.java @@ -7,7 +7,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - import org.jenkinsci.plugins.gwt.resolvers.VariablesResolver; import org.junit.Test; @@ -16,7 +15,7 @@ public class VariablesResolverRequestParameterTest { private final List genericHeaderVariables = new ArrayList<>(); @Test - public void testGenericRequestParameters() throws Exception { + public void testGenericRequestParametersWithFilters() throws Exception { final String postContent = null; final List genericVariables = newArrayList(); @@ -58,4 +57,39 @@ public void testGenericRequestParameters() throws Exception { .containsEntry("reqp4_1", "just one again") // .hasSize(6); } + + @Test + public void testGenericRequestParameters() throws Exception { + final String postContent = null; + + final List genericVariables = newArrayList(); + + final Map parameterMap = new HashMap<>(); + final String[] values1 = new String[] {"p1value"}; + parameterMap.put("param1", values1); + + final String[] values2 = new String[] {"p2value"}; + parameterMap.put("param2", values2); + + final List genericRequestVariables = new ArrayList<>(); + genericRequestVariables.add(new GenericRequestVariable("param1", "")); + genericRequestVariables.add(new GenericRequestVariable("param2", "")); + + final Map variables = + new VariablesResolver( + headers, + parameterMap, + postContent, + genericVariables, + genericRequestVariables, + genericHeaderVariables) + .getVariables(); + + assertThat(variables) // + .hasSize(4) // + .containsEntry("param1", "p1value") // + .containsEntry("param1_0", "p1value") // + .containsEntry("param2", "p2value") // + .containsEntry("param2_0", "p2value"); + } } diff --git a/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverXPathTest.java b/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverXPathTest.java index ea1a703..6ec02d4 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverXPathTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/VariablesResolverXPathTest.java @@ -4,17 +4,15 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.jenkinsci.plugins.gwt.ExpressionType.XPath; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.jenkinsci.plugins.gwt.resolvers.VariablesResolver; import org.junit.Test; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; - public class VariablesResolverXPathTest { private final Map> headers = new HashMap<>(); private final List genericHeaderVariables = new ArrayList<>(); diff --git a/src/test/java/org/jenkinsci/plugins/gwt/bdd/FeatureState.java b/src/test/java/org/jenkinsci/plugins/gwt/bdd/FeatureState.java index 83e1d81..29e7869 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/bdd/FeatureState.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/bdd/FeatureState.java @@ -4,7 +4,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - import org.jenkinsci.plugins.gwt.GenericHeaderVariable; import org.jenkinsci.plugins.gwt.GenericRequestVariable; import org.jenkinsci.plugins.gwt.GenericVariable; diff --git a/src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java b/src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java index d852220..0694933 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java @@ -4,21 +4,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.jenkinsci.plugins.gwt.Renderer.renderText; +import com.google.gson.GsonBuilder; +import cucumber.api.java.Before; +import cucumber.api.java.en.Given; +import cucumber.api.java.en.Then; +import cucumber.api.java.en.When; import java.util.List; import java.util.Map; import java.util.logging.Logger; - import org.jenkinsci.plugins.gwt.ExpressionType; import org.jenkinsci.plugins.gwt.GenericVariable; import org.jenkinsci.plugins.gwt.Renderer; import org.jenkinsci.plugins.gwt.resolvers.VariablesResolver; -import com.google.gson.GsonBuilder; - -import cucumber.api.java.Before; -import cucumber.api.java.en.Given; -import cucumber.api.java.en.Then; - public class Stepdefs { private static Logger LOG = Logger.getLogger(Stepdefs.class.getSimpleName()); @@ -29,7 +27,7 @@ public void before() { featureState = new FeatureState(); } - @Given("^received post content is:$") + @When("^received post content is:$") public void postContentReceived(final String postContent) { featureState.setPostContent(postContent); } @@ -96,6 +94,14 @@ private boolean isMatching() { renderText(featureState.getRegexpFilterText(), resolvedVariables); final boolean isMatching = Renderer.isMatching(renderedRegexpFilterText, featureState.getRegexpFilterExpression()); + if (!isMatching) { + LOG.info( + "Text: \"" + + renderedRegexpFilterText + + "\" does not match \"" + + featureState.getRegexpFilterExpression() + + "\""); + } return isMatching; } diff --git a/src/test/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderTest.java b/src/test/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderTest.java index f2a436a..08e5645 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/jobfinder/JobFinderTest.java @@ -4,23 +4,21 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import hudson.model.BuildAuthorizationToken; +import hudson.triggers.Trigger; +import hudson.triggers.TriggerDescriptor; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; - +import jenkins.model.ParameterizedJobMixIn.ParameterizedJob; import org.jenkinsci.plugins.gwt.FoundJob; import org.jenkinsci.plugins.gwt.GenericTrigger; import org.junit.Before; import org.junit.Test; -import hudson.model.BuildAuthorizationToken; -import hudson.triggers.Trigger; -import hudson.triggers.TriggerDescriptor; -import jenkins.model.ParameterizedJobMixIn.ParameterizedJob; - public class JobFinderTest { private final AtomicInteger atomicInteger = new AtomicInteger(0); private List allParameterizedJobsByImpersonation; diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/bitbucket-cloud-pull-request.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/bitbucket-cloud-pull-request.feature new file mode 100644 index 0000000..d754ce2 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/bitbucket-cloud-pull-request.feature @@ -0,0 +1,66 @@ +Feature: It should be possible to trigger for Bitbucket Cloud pull request events. + + Scenario: Trigger a job when pull request is created or updated. + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | pr_id | $.pullrequest.id | JSONPath | | | + | pr_title | $.pullrequest.title | JSONPath | | | + | pr_from_branch | $.pullrequest.source.branch.name | JSONPath | | | + | pr_from_commit | $.pullrequest.source.commit.hash | JSONPath | | | + | pr_from_repository | $.pullrequest.source.repository.full_name | JSONPath | | | + | pr_to_branch | $.pullrequest.destination.branch.name | JSONPath | | | + | pr_to_commit | $.pullrequest.destination.commit.hash | JSONPath | | | + | pr_to_repository | $.pullrequest.destination.repository.full_name | JSONPath | | | + | repository | $.repository.full_name | JSONPath | | | + + + When received post content is: + """ + { + "pullrequest": { + "title": "Feature/addingcrap", + "destination": { + "commit": { + "hash": "187ccb978925" + }, + "branch": { + "name": "master" + }, + "repository": { + "full_name": "tomasbjerre/test" + } + }, + "source": { + "commit": { + "hash": "2a7ae003d5db" + }, + "branch": { + "name": "feature/addingcrap" + }, + "repository": { + "full_name": "tomasbjerre/test" + } + }, + "state": "OPEN", + "id": 1 + }, + "repository": { + "scm": "git", + "name": "test", + "full_name": "tomasbjerre/test" + } + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | pr_id | 1 | + | pr_title | Feature/addingcrap | + | pr_from_branch | feature/addingcrap | + | pr_from_commit | 2a7ae003d5db | + | pr_from_repository | tomasbjerre/test | + | pr_to_branch | master | + | pr_to_commit | 187ccb978925 | + | pr_to_repository | tomasbjerre/test | + | repository | tomasbjerre/test | diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/bitbucket-cloud-tag.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/bitbucket-cloud-tag.feature new file mode 100644 index 0000000..43cca8a --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/bitbucket-cloud-tag.feature @@ -0,0 +1,89 @@ +Feature: It should be possible to trigger for Bitbucket Cloud tag events. + + Scenario: Trigger a job when a tag is created. + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | repository_name | $.repository.full_name | JSONPath | | | + | changes_names | $.push.changes[?(@.new.type == "tag")].new.name | JSONPath | | | + + When received post content is: + """ + { + "push": { + "changes": [ + { + "created": true, + "new": { + "name": "this-is-a-tag-1", + "type": "tag", + "target": { + "hash": "1114e4bf83e1c832d7eb5433a36b17fe8b4a5111" + } + } + } + ] + }, + "repository": { + "scm": "git", + "name": "test", + "full_name": "tomasbjerre/test" + } + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | repository_name | tomasbjerre/test | + | changes_names | ["this-is-a-tag-1"] | + | changes_names_0 | this-is-a-tag-1 | + + + Scenario: Trigger a job when several tags are created. + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | repository_name | $.repository.full_name | JSONPath | | | + | changes_names | $.push.changes[?(@.new.type == "tag")].new.name | JSONPath | | | + + When received post content is: + """ + { + "push": { + "changes": [ + { + "created": true, + "new": { + "name": "this-is-a-tag-1", + "type": "tag", + "target": { + "hash": "1114e4bf83e1c832d7eb5433a36b17fe8b4a5111" + } + } + }, + { + "created": true, + "new": { + "name": "this-is-a-tag-2", + "type": "tag", + "target": { + "hash": "2224e4bf83e1c832d7eb5433a36b17fe8b4a5222" + } + } + } + ] + }, + "repository": { + "scm": "git", + "name": "test", + "full_name": "tomasbjerre/test" + } + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | repository_name | tomasbjerre/test | + | changes_names | ["this-is-a-tag-1","this-is-a-tag-2"] | + | changes_names_0 | this-is-a-tag-1 | + | changes_names_1 | this-is-a-tag-2 | diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-commented.txt b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-commented.txt new file mode 100644 index 0000000..deb9bbd --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-commented.txt @@ -0,0 +1,276 @@ +{ + "comment": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/comments/74854426" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/pull-requests/1/_/diff#comment-74854426" + } + }, + "deleted": false, + "pullrequest": { + "type": "pullrequest", + "id": 1, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/pull-requests/1" + } + }, + "title": "Feature/addingcrap" + }, + "content": { + "raw": "hej hopp", + "markup": "markdown", + "html": "

hej hopp

", + "type": "rendered" + }, + "created_on": "2018-09-04T07:11:11.789472+00:00", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "updated_on": "2018-09-04T07:11:11.796349+00:00", + "type": "pullrequest_comment", + "id": 74854426 + }, + "pullrequest": { + "merge_commit": null, + "description": "* some crap\r\n* fix\r\n* Revert \"fix\"\r\n\r\n This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.\r\n\r\n\r\n* Revert \"Revert \"fix\"\"\r\n\r\n This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.", + "links": { + "decline": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/decline" + }, + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/commits" + }, + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/comments" + }, + "merge": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/merge" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/pull-requests/1" + }, + "activity": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/activity" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/diff" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/statuses" + } + }, + "title": "Feature/addingcrap", + "close_source_branch": false, + "reviewers": [], + "destination": { + "commit": { + "type": "commit", + "hash": "187ccb978925", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/187ccb978925" + } + } + }, + "branch": { + "name": "master" + }, + "repository": { + "full_name": "tomasbjerre/test", + "type": "repository", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } + }, + "comment_count": 1, + "closed_by": null, + "summary": { + "raw": "* some crap\r\n* fix\r\n* Revert \"fix\"\r\n\r\n This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.\r\n\r\n\r\n* Revert \"Revert \"fix\"\"\r\n\r\n This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.", + "markup": "markdown", + "html": "
    \n
  • some crap
  • \n
  • fix
  • \n
  • \n

    Revert \"fix\"

    \n

    This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.

    \n
  • \n
  • \n

    Revert \"Revert \"fix\"\"

    \n

    This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.

    \n
  • \n
", + "type": "rendered" + }, + "source": { + "commit": { + "type": "commit", + "hash": "2a7ae003d5db", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/2a7ae003d5db" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/2a7ae003d5db" + } + } + }, + "branch": { + "name": "feature/addingcrap" + }, + "repository": { + "full_name": "tomasbjerre/test", + "type": "repository", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } + }, + "created_on": "2018-09-04T07:09:49.794259+00:00", + "state": "OPEN", + "task_count": 0, + "participants": [ + { + "type": "participant", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "role": "PARTICIPANT", + "approved": false, + "participated_on": "2018-09-04T07:11:11.796349+00:00" + } + ], + "reason": "", + "updated_on": "2018-09-04T07:11:11.889816+00:00", + "author": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "type": "pullrequest", + "id": 1 + }, + "actor": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "repository": { + "scm": "git", + "website": "", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "full_name": "tomasbjerre/test", + "owner": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "type": "repository", + "is_private": false, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } +} \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-created.txt b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-created.txt new file mode 100644 index 0000000..53f8c15 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-created.txt @@ -0,0 +1,199 @@ +{ + "pullrequest": { + "merge_commit": null, + "description": "* some crap\r\n* fix\r\n* Revert \"fix\"\r\n\r\n This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.\r\n\r\n\r\n* Revert \"Revert \"fix\"\"\r\n\r\n This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.", + "links": { + "decline": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/decline" + }, + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/commits" + }, + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/comments" + }, + "merge": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/merge" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/pull-requests/1" + }, + "activity": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/activity" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/diff" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/statuses" + } + }, + "title": "Feature/addingcrap", + "close_source_branch": false, + "reviewers": [], + "destination": { + "commit": { + "type": "commit", + "hash": "187ccb978925", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/187ccb978925" + } + } + }, + "branch": { + "name": "master" + }, + "repository": { + "full_name": "tomasbjerre/test", + "type": "repository", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } + }, + "comment_count": 0, + "closed_by": null, + "summary": { + "raw": "* some crap\r\n* fix\r\n* Revert \"fix\"\r\n\r\n This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.\r\n\r\n\r\n* Revert \"Revert \"fix\"\"\r\n\r\n This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.", + "markup": "markdown", + "html": "
    \n
  • some crap
  • \n
  • fix
  • \n
  • \n

    Revert \"fix\"

    \n

    This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.

    \n
  • \n
  • \n

    Revert \"Revert \"fix\"\"

    \n

    This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.

    \n
  • \n
", + "type": "rendered" + }, + "source": { + "commit": { + "type": "commit", + "hash": "2a7ae003d5db", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/2a7ae003d5db" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/2a7ae003d5db" + } + } + }, + "branch": { + "name": "feature/addingcrap" + }, + "repository": { + "full_name": "tomasbjerre/test", + "type": "repository", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } + }, + "created_on": "2018-09-04T07:09:49.794259+00:00", + "state": "OPEN", + "task_count": 0, + "participants": [], + "reason": "", + "updated_on": "2018-09-04T07:09:49.850828+00:00", + "author": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "type": "pullrequest", + "id": 1 + }, + "actor": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "repository": { + "scm": "git", + "website": "", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "full_name": "tomasbjerre/test", + "owner": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "type": "repository", + "is_private": false, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } +} \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-updated.txt b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-updated.txt new file mode 100644 index 0000000..dfa4a33 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/pullrequest-updated.txt @@ -0,0 +1,224 @@ +{ + "pullrequest": { + "merge_commit": null, + "description": "* some crap\r\n* fix\r\n* Revert \"fix\"\r\n\r\n This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.\r\n\r\n\r\n* Revert \"Revert \"fix\"\"\r\n\r\n This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.", + "links": { + "decline": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/decline" + }, + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/commits" + }, + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/comments" + }, + "merge": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/merge" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/pull-requests/1" + }, + "activity": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/activity" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/diff" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/pullrequests/1/statuses" + } + }, + "title": "Feature/addingcrap", + "close_source_branch": false, + "reviewers": [], + "destination": { + "commit": { + "type": "commit", + "hash": "187ccb978925", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/187ccb978925" + } + } + }, + "branch": { + "name": "master" + }, + "repository": { + "full_name": "tomasbjerre/test", + "type": "repository", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } + }, + "comment_count": 1, + "closed_by": null, + "summary": { + "raw": "* some crap\r\n* fix\r\n* Revert \"fix\"\r\n\r\n This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.\r\n\r\n\r\n* Revert \"Revert \"fix\"\"\r\n\r\n This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.", + "markup": "markdown", + "html": "
    \n
  • some crap
  • \n
  • fix
  • \n
  • \n

    Revert \"fix\"

    \n

    This reverts commit bb6805488ca62bbf61e2fcfc1b4f43ccc143a19d.

    \n
  • \n
  • \n

    Revert \"Revert \"fix\"\"

    \n

    This reverts commit 50312984b4c97d998f7677c48e42b4bdb66ad3c0.

    \n
  • \n
", + "type": "rendered" + }, + "source": { + "commit": { + "type": "commit", + "hash": "d424e4bf83e1", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/d424e4bf83e1" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/d424e4bf83e1" + } + } + }, + "branch": { + "name": "feature/addingcrap" + }, + "repository": { + "full_name": "tomasbjerre/test", + "type": "repository", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } + }, + "created_on": "2018-09-04T07:09:49.794259+00:00", + "state": "OPEN", + "task_count": 0, + "participants": [ + { + "type": "participant", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "role": "PARTICIPANT", + "approved": false, + "participated_on": "2018-09-04T07:11:11.796349+00:00" + } + ], + "reason": "", + "updated_on": "2018-09-04T07:12:20.937838+00:00", + "author": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "type": "pullrequest", + "id": 1 + }, + "actor": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "repository": { + "scm": "git", + "website": "", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "full_name": "tomasbjerre/test", + "owner": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "type": "repository", + "is_private": false, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + } +} \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/repo-push.txt b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/repo-push.txt new file mode 100644 index 0000000..7477b4a --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/repo-push.txt @@ -0,0 +1,574 @@ +{ + "push": { + "changes": [ + { + "forced": true, + "old": { + "target": { + "hash": "ea5b17ca54fc6bf11292b559c7263a444558bdc0", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/ea5b17ca54fc6bf11292b559c7263a444558bdc0" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/ea5b17ca54fc6bf11292b559c7263a444558bdc0" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "Initial commit", + "markup": "markdown", + "html": "

Initial commit

", + "type": "rendered" + }, + "parents": [], + "date": "2018-09-04T07:05:11+00:00", + "message": "Initial commit", + "type": "commit" + }, + "links": { + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commits/master" + }, + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/refs/branches/master" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/branch/master" + } + }, + "default_merge_strategy": "merge_commit", + "merge_strategies": [ + "merge_commit", + "squash", + "fast_forward" + ], + "type": "branch", + "name": "master" + }, + "links": { + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commits?include=187ccb978925d6ccdf948a58bccaf878cce046b9&exclude=ea5b17ca54fc6bf11292b559c7263a444558bdc0" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/branch/master" + } + }, + "truncated": true, + "commits": [ + { + "hash": "187ccb978925d6ccdf948a58bccaf878cce046b9", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925d6ccdf948a58bccaf878cce046b9" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925d6ccdf948a58bccaf878cce046b9/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/patch/187ccb978925d6ccdf948a58bccaf878cce046b9" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/187ccb978925d6ccdf948a58bccaf878cce046b9" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/diff/187ccb978925d6ccdf948a58bccaf878cce046b9" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925d6ccdf948a58bccaf878cce046b9/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925d6ccdf948a58bccaf878cce046b9/statuses" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "Google Error Prone\n", + "markup": "markdown", + "html": "

Google Error Prone

", + "type": "rendered" + }, + "parents": [ + { + "type": "commit", + "hash": "198ad88794dd0e4e0ad492887f773ede69153425", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/198ad88794dd0e4e0ad492887f773ede69153425" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/198ad88794dd0e4e0ad492887f773ede69153425" + } + } + } + ], + "date": "2018-01-14T09:03:56+00:00", + "message": "Google Error Prone\n", + "type": "commit" + }, + { + "hash": "198ad88794dd0e4e0ad492887f773ede69153425", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/198ad88794dd0e4e0ad492887f773ede69153425" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/198ad88794dd0e4e0ad492887f773ede69153425/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/patch/198ad88794dd0e4e0ad492887f773ede69153425" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/198ad88794dd0e4e0ad492887f773ede69153425" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/diff/198ad88794dd0e4e0ad492887f773ede69153425" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/198ad88794dd0e4e0ad492887f773ede69153425/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/198ad88794dd0e4e0ad492887f773ede69153425/statuses" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "ESLint is failing in Travis\n", + "markup": "markdown", + "html": "

ESLint is failing in Travis

", + "type": "rendered" + }, + "parents": [ + { + "type": "commit", + "hash": "9409670a13c28a9e86d92dd17f7b0ff602393ce8", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/9409670a13c28a9e86d92dd17f7b0ff602393ce8" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/9409670a13c28a9e86d92dd17f7b0ff602393ce8" + } + } + } + ], + "date": "2017-09-02T20:09:36+00:00", + "message": "ESLint is failing in Travis\n", + "type": "commit" + }, + { + "hash": "9409670a13c28a9e86d92dd17f7b0ff602393ce8", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/9409670a13c28a9e86d92dd17f7b0ff602393ce8" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/9409670a13c28a9e86d92dd17f7b0ff602393ce8/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/patch/9409670a13c28a9e86d92dd17f7b0ff602393ce8" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/9409670a13c28a9e86d92dd17f7b0ff602393ce8" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/diff/9409670a13c28a9e86d92dd17f7b0ff602393ce8" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/9409670a13c28a9e86d92dd17f7b0ff602393ce8/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/9409670a13c28a9e86d92dd17f7b0ff602393ce8/statuses" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "Linting ESLint\n", + "markup": "markdown", + "html": "

Linting ESLint

", + "type": "rendered" + }, + "parents": [ + { + "type": "commit", + "hash": "e746f44de4cac5b4a4362e6713a3416e1e6617d3", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/e746f44de4cac5b4a4362e6713a3416e1e6617d3" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/e746f44de4cac5b4a4362e6713a3416e1e6617d3" + } + } + } + ], + "date": "2016-10-01T13:14:23+00:00", + "message": "Linting ESLint\n", + "type": "commit" + }, + { + "hash": "e746f44de4cac5b4a4362e6713a3416e1e6617d3", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/e746f44de4cac5b4a4362e6713a3416e1e6617d3" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/e746f44de4cac5b4a4362e6713a3416e1e6617d3/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/patch/e746f44de4cac5b4a4362e6713a3416e1e6617d3" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/e746f44de4cac5b4a4362e6713a3416e1e6617d3" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/diff/e746f44de4cac5b4a4362e6713a3416e1e6617d3" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/e746f44de4cac5b4a4362e6713a3416e1e6617d3/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/e746f44de4cac5b4a4362e6713a3416e1e6617d3/statuses" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "pitest\n", + "markup": "markdown", + "html": "

pitest

", + "type": "rendered" + }, + "parents": [ + { + "type": "commit", + "hash": "098e30ffdfc4d76c37806a3c73505eb48d038642", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/098e30ffdfc4d76c37806a3c73505eb48d038642" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/098e30ffdfc4d76c37806a3c73505eb48d038642" + } + } + } + ], + "date": "2016-03-25T09:38:27+00:00", + "message": "pitest\n", + "type": "commit" + }, + { + "hash": "098e30ffdfc4d76c37806a3c73505eb48d038642", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/098e30ffdfc4d76c37806a3c73505eb48d038642" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/098e30ffdfc4d76c37806a3c73505eb48d038642/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/patch/098e30ffdfc4d76c37806a3c73505eb48d038642" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/098e30ffdfc4d76c37806a3c73505eb48d038642" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/diff/098e30ffdfc4d76c37806a3c73505eb48d038642" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/098e30ffdfc4d76c37806a3c73505eb48d038642/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/098e30ffdfc4d76c37806a3c73505eb48d038642/statuses" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "PerlCritic and XMLLint\n", + "markup": "markdown", + "html": "

PerlCritic and XMLLint

", + "type": "rendered" + }, + "parents": [ + { + "type": "commit", + "hash": "2e00e0fe0feefad307649473b17e10545ef724ba", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/2e00e0fe0feefad307649473b17e10545ef724ba" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/2e00e0fe0feefad307649473b17e10545ef724ba" + } + } + } + ], + "date": "2016-03-06T20:37:54+00:00", + "message": "PerlCritic and XMLLint\n", + "type": "commit" + } + ], + "created": false, + "closed": false, + "new": { + "target": { + "hash": "187ccb978925d6ccdf948a58bccaf878cce046b9", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925d6ccdf948a58bccaf878cce046b9" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/187ccb978925d6ccdf948a58bccaf878cce046b9" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "Google Error Prone\n", + "markup": "markdown", + "html": "

Google Error Prone

", + "type": "rendered" + }, + "parents": [ + { + "type": "commit", + "hash": "198ad88794dd0e4e0ad492887f773ede69153425", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/198ad88794dd0e4e0ad492887f773ede69153425" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/198ad88794dd0e4e0ad492887f773ede69153425" + } + } + } + ], + "date": "2018-01-14T09:03:56+00:00", + "message": "Google Error Prone\n", + "type": "commit" + }, + "links": { + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commits/master" + }, + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/refs/branches/master" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/branch/master" + } + }, + "default_merge_strategy": "merge_commit", + "merge_strategies": [ + "merge_commit", + "squash", + "fast_forward" + ], + "type": "branch", + "name": "master" + } + } + ] + }, + "repository": { + "scm": "git", + "website": "", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "full_name": "tomasbjerre/test", + "owner": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "type": "repository", + "is_private": false, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + }, + "actor": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } +} \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/tag-push.txt b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/tag-push.txt new file mode 100644 index 0000000..57154fa --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-cloud/tag-push.txt @@ -0,0 +1,234 @@ +{ + "push": { + "changes": [ + { + "forced": false, + "old": null, + "links": { + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commits?include=187ccb978925d6ccdf948a58bccaf878cce046b9" + } + }, + "truncated": false, + "created": true, + "closed": false, + "new": { + "name": "this-is-a-tag-2", + "links": { + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commits/this-is-a-tag-2" + }, + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/refs/tags/this-is-a-tag-2" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/tag/this-is-a-tag-2" + } + }, + "tagger": null, + "date": null, + "message": null, + "type": "tag", + "target": { + "hash": "d424e4bf83e1c832d7eb5433a36b17fe8b4a5265", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/d424e4bf83e1c832d7eb5433a36b17fe8b4a5265" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/d424e4bf83e1c832d7eb5433a36b17fe8b4a5265" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "asd\n", + "markup": "markdown", + "html": "

asd

", + "type": "rendered" + }, + "parents": [ + { + "type": "commit", + "hash": "2a7ae003d5db1c0a2c69c41600e1c106ecf019e5", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/2a7ae003d5db1c0a2c69c41600e1c106ecf019e5" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/2a7ae003d5db1c0a2c69c41600e1c106ecf019e5" + } + } + } + ], + "date": "2018-09-04T07:12:15+00:00", + "message": "asd\n", + "type": "commit" + } + } + }, + { + "forced": false, + "old": null, + "links": { + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commits?include=187ccb978925d6ccdf948a58bccaf878cce046b9" + } + }, + "truncated": false, + "created": true, + "closed": false, + "new": { + "name": "this-is-a-tag", + "links": { + "commits": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commits/this-is-a-tag" + }, + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/refs/tags/this-is-a-tag" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/tag/this-is-a-tag" + } + }, + "tagger": null, + "date": null, + "message": null, + "type": "tag", + "target": { + "hash": "187ccb978925d6ccdf948a58bccaf878cce046b9", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/187ccb978925d6ccdf948a58bccaf878cce046b9" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/187ccb978925d6ccdf948a58bccaf878cce046b9" + } + }, + "author": { + "raw": "Tomas Bjerre ", + "type": "author", + "user": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } + }, + "summary": { + "raw": "Google Error Prone\n", + "markup": "markdown", + "html": "

Google Error Prone

", + "type": "rendered" + }, + "parents": [ + { + "type": "commit", + "hash": "198ad88794dd0e4e0ad492887f773ede69153425", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test/commit/198ad88794dd0e4e0ad492887f773ede69153425" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test/commits/198ad88794dd0e4e0ad492887f773ede69153425" + } + } + } + ], + "date": "2018-01-14T09:03:56+00:00", + "message": "Google Error Prone\n", + "type": "commit" + } + } + } + ] + }, + "repository": { + "scm": "git", + "website": "", + "name": "test", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/tomasbjerre/test" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/test" + }, + "avatar": { + "href": "https://bytebucket.org/ravatar/%7B5648849d-b6f8-43ab-90ae-c1333b2de941%7D?ts=default" + } + }, + "full_name": "tomasbjerre/test", + "owner": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + }, + "type": "repository", + "is_private": false, + "uuid": "{5648849d-b6f8-43ab-90ae-c1333b2de941}" + }, + "actor": { + "username": "tomasbjerre", + "display_name": "Tomas Bjerre", + "account_id": "557058:0fbe1228-7921-4710-ad7d-7320eb63191b", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/tomasbjerre" + }, + "html": { + "href": "https://bitbucket.org/tomasbjerre/" + }, + "avatar": { + "href": "https://bitbucket.org/account/tomasbjerre/avatar/" + } + }, + "type": "user", + "uuid": "{75390a4d-197a-413c-be64-4c54c3fda508}" + } +} \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/bitbucket-server-pull-request.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/bitbucket-server-pull-request.feature new file mode 100644 index 0000000..07757f6 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/bitbucket-server-pull-request.feature @@ -0,0 +1,134 @@ +Feature: It should be possible to trigger for Bitbucket Server pull request events. + + Scenario: Trigger a job when pull request is opened. + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | eventKey | $.eventKey | JSONPath | | | + | pr_id | $.pullRequest.id | JSONPath | | | + | pr_state | $.pullRequest.state | JSONPath | | | + | pr_title | $.pullRequest.title | JSONPath | | | + | pr_from_ref | $.pullRequest.fromRef.id | JSONPath | | | + | pr_from_commit | $.pullRequest.fromRef.latestCommit | JSONPath | | | + | pr_from_repository_slug | $.pullRequest.fromRef.repository.slug | JSONPath | | | + | pr_from_repository_project_key | $.pullRequest.fromRef.repository.project.key | JSONPath | | | + | pr_to_ref | $.pullRequest.toRef.id | JSONPath | | | + | pr_to_commit | $.pullRequest.toRef.latestCommit | JSONPath | | | + | pr_to_repository_slug | $.pullRequest.toRef.repository.slug | JSONPath | | | + | pr_to_repository_project_key | $.pullRequest.toRef.repository.project.key | JSONPath | | | + + Given filter is configured with text: $eventKey + Given filter is configured with expression: ^pr:opened$ + + + When received post content is: + """ + { + "eventKey":"pr:opened", + "date":"2017-09-19T09:58:11+1000", + "actor":{ + "name":"admin", + "emailAddress":"admin@example.com", + "id":1, + "displayName":"Administrator", + "active":true, + "slug":"admin", + "type":"NORMAL" + }, + "pullRequest":{ + "id":1, + "version":0, + "title":"a new file added", + "state":"OPEN", + "open":true, + "closed":false, + "createdDate":1505779091796, + "updatedDate":1505779091796, + "fromRef":{ + "id":"refs/heads/a-branch", + "displayId":"a-branch", + "latestCommit":"ef8755f06ee4b28c96a847a95cb8ec8ed6ddd1ca", + "repository":{ + "slug":"repository", + "id":84, + "name":"repository", + "scmId":"git", + "state":"AVAILABLE", + "statusMessage":"Available", + "forkable":true, + "project":{ + "key":"PROJ", + "id":84, + "name":"project", + "public":false, + "type":"NORMAL" + }, + "public":false + } + }, + "toRef":{ + "id":"refs/heads/master", + "displayId":"master", + "latestCommit":"178864a7d521b6f5e720b386b2c2b0ef8563e0dc", + "repository":{ + "slug":"repository", + "id":84, + "name":"repository", + "scmId":"git", + "state":"AVAILABLE", + "statusMessage":"Available", + "forkable":true, + "project":{ + "key":"PROJ", + "id":84, + "name":"project", + "public":false, + "type":"NORMAL" + }, + "public":false + } + }, + "locked":false, + "author":{ + "user":{ + "name":"admin", + "emailAddress":"admin@example.com", + "id":1, + "displayName":"Administrator", + "active":true, + "slug":"admin", + "type":"NORMAL" + }, + "role":"AUTHOR", + "approved":false, + "status":"UNAPPROVED" + }, + "reviewers":[ + + ], + "participants":[ + + ], + "links":{ + "self":[ + null + ] + } + } + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | eventKey | pr:opened | + | pr_id | 1 | + | pr_state | OPEN | + | pr_title | a new file added | + | pr_from_ref | refs/heads/a-branch | + | pr_from_commit | ef8755f06ee4b28c96a847a95cb8ec8ed6ddd1ca | + | pr_from_repository_slug | repository | + | pr_from_repository_project_key | PROJ | + | pr_to_ref | refs/heads/master | + | pr_to_commit | 178864a7d521b6f5e720b386b2c2b0ef8563e0dc | + | pr_to_repository_slug | repository | + | pr_to_repository_project_key | PROJ | diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/bitbucket-server-tag.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/bitbucket-server-tag.feature new file mode 100644 index 0000000..76bd235 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/bitbucket-server-tag.feature @@ -0,0 +1,153 @@ +Feature: It should be possible to trigger for Bitbucket Server tag events. + + Scenario: Trigger a job when a tag is created. + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | eventKey | $.eventKey | JSONPath | | | + | repository_slug | $.repository.slug | JSONPath | | | + | repository_project_key | $.repository.project.key | JSONPath | | | + | changes_ref_ids | $.changes[?(@.ref.type == "TAG")].ref.id | JSONPath | | | + + Given filter is configured with text: $eventKey + Given filter is configured with expression: ^repo:refs_changed$ + + + When received post content is: + """ + { + "eventKey":"repo:refs_changed", + "date":"2018-09-04T10:10:33+0200", + "actor":{ + "name":"admin", + "emailAddress":"admin@example.com", + "id":1, + "displayName":"Administrator", + "active":true, + "slug":"admin", + "type":"NORMAL" + }, + "repository":{ + "slug":"violations-test", + "id":12, + "name":"violations-test", + "scmId":"git", + "state":"AVAILABLE", + "statusMessage":"Available", + "forkable":true, + "project":{ + "key":"PROJECT_1", + "id":1, + "name":"Project 1", + "description":"Default configuration project #1", + "public":false, + "type":"NORMAL" + }, + "public":false + }, + "changes":[ + { + "ref":{ + "id":"refs/tags/hej1", + "displayId":"hej1", + "type":"TAG" + }, + "refId":"refs/tags/hej1", + "fromHash":"0000000000000000000000000000000000000000", + "toHash":"d424e4bf83e1c832d7eb5433a36b17fe8b4a5265", + "type":"ADD" + } + ] + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | eventKey | repo:refs_changed | + | repository_slug | violations-test | + | repository_project_key | PROJECT_1 | + | changes_ref_ids | ["refs/tags/hej1"] | + | changes_ref_ids_0 | refs/tags/hej1 | + + + Scenario: Trigger a job when several tags are created. + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | eventKey | $.eventKey | JSONPath | | | + | repository_slug | $.repository.slug | JSONPath | | | + | repository_project_key | $.repository.project.key | JSONPath | | | + | changes_ref_ids | $.changes[?(@.ref.type == "TAG")].ref.id | JSONPath | | | + + Given filter is configured with text: $eventKey + Given filter is configured with expression: ^repo:refs_changed$ + + + When received post content is: + """ + { + "eventKey":"repo:refs_changed", + "date":"2018-09-04T10:10:33+0200", + "actor":{ + "name":"admin", + "emailAddress":"admin@example.com", + "id":1, + "displayName":"Administrator", + "active":true, + "slug":"admin", + "type":"NORMAL" + }, + "repository":{ + "slug":"violations-test", + "id":12, + "name":"violations-test", + "scmId":"git", + "state":"AVAILABLE", + "statusMessage":"Available", + "forkable":true, + "project":{ + "key":"PROJECT_1", + "id":1, + "name":"Project 1", + "description":"Default configuration project #1", + "public":false, + "type":"NORMAL" + }, + "public":false + }, + "changes":[ + { + "ref":{ + "id":"refs/tags/hej1", + "displayId":"hej1", + "type":"TAG" + }, + "refId":"refs/tags/hej1", + "fromHash":"0000000000000000000000000000000000000000", + "toHash":"d424e4bf83e1c832d7eb5433a36b17fe8b4a5265", + "type":"ADD" + }, + { + "ref":{ + "id":"refs/tags/hej2", + "displayId":"hej2", + "type":"TAG" + }, + "refId":"refs/tags/hej2", + "fromHash":"0000000000000000000000000000000000000000", + "toHash":"1234e4bf83e1c832d7eb5433a36b17fe8b4a1414", + "type":"ADD" + } + ] + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | eventKey | repo:refs_changed | + | repository_slug | violations-test | + | repository_project_key | PROJECT_1 | + | changes_ref_ids | ["refs/tags/hej1","refs/tags/hej2"] | + | changes_ref_ids_0 | refs/tags/hej1 | + | changes_ref_ids_1 | refs/tags/hej2 | + diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/pullrequest-opened.txt b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/pullrequest-opened.txt new file mode 100644 index 0000000..affa1b5 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/pullrequest-opened.txt @@ -0,0 +1,90 @@ +{ + "eventKey":"pr:opened", + "date":"2018-09-04T09:51:52+0200", + "actor":{ + "name":"admin", + "emailAddress":"admin@example.com", + "id":1, + "displayName":"Administrator", + "active":true, + "slug":"admin", + "type":"NORMAL" + }, + "pullRequest":{ + "id":1, + "version":0, + "title":"a modification on branch basic_branching", + "state":"OPEN", + "open":true, + "closed":false, + "createdDate":1536047512277, + "updatedDate":1536047512277, + "fromRef":{ + "id":"refs/heads/basic_branching", + "displayId":"basic_branching", + "latestCommit":"d6edcbf924697ab811a867421dab60d954ccad99", + "repository":{ + "slug":"rep_1", + "id":1, + "name":"rep_1", + "scmId":"git", + "state":"AVAILABLE", + "statusMessage":"Available", + "forkable":true, + "project":{ + "key":"PROJECT_1", + "id":1, + "name":"Project 1", + "description":"Default configuration project #1", + "public":false, + "type":"NORMAL" + }, + "public":false + } + }, + "toRef":{ + "id":"refs/heads/master", + "displayId":"master", + "latestCommit":"0a943a29376f2336b78312d99e65da17048951db", + "repository":{ + "slug":"rep_1", + "id":1, + "name":"rep_1", + "scmId":"git", + "state":"AVAILABLE", + "statusMessage":"Available", + "forkable":true, + "project":{ + "key":"PROJECT_1", + "id":1, + "name":"Project 1", + "description":"Default configuration project #1", + "public":false, + "type":"NORMAL" + }, + "public":false + } + }, + "locked":false, + "author":{ + "user":{ + "name":"admin", + "emailAddress":"admin@example.com", + "id":1, + "displayName":"Administrator", + "active":true, + "slug":"admin", + "type":"NORMAL" + }, + "role":"AUTHOR", + "approved":false, + "status":"UNAPPROVED" + }, + "reviewers":[ + + ], + "participants":[ + + ] + } +} \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/tag-push.txt b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/tag-push.txt new file mode 100644 index 0000000..4e09c8b --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/bitbucket-server/tag-push.txt @@ -0,0 +1,44 @@ +{ + "eventKey":"repo:refs_changed", + "date":"2018-09-04T10:10:33+0200", + "actor":{ + "name":"admin", + "emailAddress":"admin@example.com", + "id":1, + "displayName":"Administrator", + "active":true, + "slug":"admin", + "type":"NORMAL" + }, + "repository":{ + "slug":"violations-test", + "id":12, + "name":"violations-test", + "scmId":"git", + "state":"AVAILABLE", + "statusMessage":"Available", + "forkable":true, + "project":{ + "key":"PROJECT_1", + "id":1, + "name":"Project 1", + "description":"Default configuration project #1", + "public":false, + "type":"NORMAL" + }, + "public":false + }, + "changes":[ + { + "ref":{ + "id":"refs/tags/hej26", + "displayId":"hej26", + "type":"TAG" + }, + "refId":"refs/tags/hej26", + "fromHash":"0000000000000000000000000000000000000000", + "toHash":"d424e4bf83e1c832d7eb5433a36b17fe8b4a5265", + "type":"ADD" + } + ] +} \ No newline at end of file diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/filter-with-variables.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/filter-with-variables.feature index 8cf4db1..d152a96 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/filter-with-variables.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/filter-with-variables.feature @@ -8,7 +8,7 @@ Feature: It should be possible to use variables resolved from post content. | committer_username | $.head_commit.committer.username | JSONPath | | | | ref | $.ref | JSONPath | | | - Given received post content is: + When received post content is: """ { "ref": "refs/heads/develop", diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-pull-request.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-pull-request.feature new file mode 100644 index 0000000..d33cbd5 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-pull-request.feature @@ -0,0 +1,172 @@ +Feature: It should be possible to trigger for GitHub pull request events. + + Scenario: Trigger a job when pull request is opened, reopened and synchronized. + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | action | $.action | JSONPath | | | + | pr_id | $.pull_request.id | JSONPath | | | + | pr_state | $.pull_request.state | JSONPath | | | + | pr_title | $.pull_request.title | JSONPath | | | + | pr_from_ref | $.pull_request.head.ref | JSONPath | | | + | pr_from_sha | $.pull_request.head.sha | JSONPath | | | + | pr_from_git_url | $.pull_request.head.repo.git_url | JSONPath | | | + | pr_to_ref | $.pull_request.base.ref | JSONPath | | | + | pr_to_sha | $.pull_request.base.sha | JSONPath | | | + | pr_to_git_url | $.pull_request.base.repo.git_url | JSONPath | | | + | repo_git_url | $.repository.git_url | JSONPath | | | + + Given filter is configured with text: $action + Given filter is configured with expression: ^(opened|reopened|synchronize)$ + + + When received post content is: + """ + { + "action": "opened", + "pull_request": { + "id": 212577079, + "state": "open", + "title": "Feature/testing webhooks", + "head": { + "ref": "feature/testing-webhooks", + "sha": "187ccb978925d6ccdf948a58bccaf878cce046b9", + "repo": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git" + } + }, + "base": { + "ref": "feature/addingcrap-2", + "sha": "30fda2e3e97c773e587dfae3066d4a904516e7d8", + "repo": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git" + } + } + }, + "repository": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git" + }, + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | action | opened | + | pr_id | 212577079 | + | pr_state | open | + | pr_title | Feature/testing webhooks | + | pr_from_ref | feature/testing-webhooks | + | pr_from_sha | 187ccb978925d6ccdf948a58bccaf878cce046b9 | + | pr_from_git_url | git://github.com/tomasbjerre/violations-test.git | + | pr_to_ref | feature/addingcrap-2 | + | pr_to_sha | 30fda2e3e97c773e587dfae3066d4a904516e7d8 | + | pr_to_git_url | git://github.com/tomasbjerre/violations-test.git | + | repo_git_url | git://github.com/tomasbjerre/violations-test.git | + + + When received post content is: + """ + { + "action": "reopened", + "pull_request": { + "id": 212577079, + "state": "open", + "title": "Feature/testing webhooks", + "head": { + "ref": "feature/testing-webhooks", + "sha": "187ccb978925d6ccdf948a58bccaf878cce046b9", + "repo": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git", + } + }, + "base": { + "ref": "feature/addingcrap-2", + "sha": "30fda2e3e97c773e587dfae3066d4a904516e7d8", + "repo": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git", + } + } + }, + "repository": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git", + }, + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | action | reopened | + | pr_id | 212577079 | + | pr_state | open | + | pr_title | Feature/testing webhooks | + | pr_from_ref | feature/testing-webhooks | + | pr_from_sha | 187ccb978925d6ccdf948a58bccaf878cce046b9 | + | pr_from_git_url | git://github.com/tomasbjerre/violations-test.git | + | pr_to_ref | feature/addingcrap-2 | + | pr_to_sha | 30fda2e3e97c773e587dfae3066d4a904516e7d8 | + | pr_to_git_url | git://github.com/tomasbjerre/violations-test.git | + | repo_git_url | git://github.com/tomasbjerre/violations-test.git | + + + When received post content is: + """ + { + "action": "synchronize", + "pull_request": { + "id": 212577079, + "state": "open", + "title": "Feature/testing webhooks", + "head": { + "ref": "feature/testing-webhooks", + "sha": "979a59cccc7c3526fb3fc0ca71753d04271d278b", + "repo": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git", + } + }, + "base": { + "ref": "feature/addingcrap-2", + "sha": "30fda2e3e97c773e587dfae3066d4a904516e7d8", + "repo": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git", + } + } + }, + "before": "187ccb978925d6ccdf948a58bccaf878cce046b9", + "after": "979a59cccc7c3526fb3fc0ca71753d04271d278b", + "repository": { + "git_url": "git://github.com/tomasbjerre/violations-test.git", + "ssh_url": "git@github.com:tomasbjerre/violations-test.git", + "clone_url": "https://github.com/tomasbjerre/violations-test.git", + } + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | action | synchronize | + | pr_id | 212577079 | + | pr_state | open | + | pr_title | Feature/testing webhooks | + | pr_from_ref | feature/testing-webhooks | + | pr_from_sha | 979a59cccc7c3526fb3fc0ca71753d04271d278b | + | pr_from_git_url | git://github.com/tomasbjerre/violations-test.git | + | pr_to_ref | feature/addingcrap-2 | + | pr_to_sha | 30fda2e3e97c773e587dfae3066d4a904516e7d8 | + | pr_to_git_url | git://github.com/tomasbjerre/violations-test.git | + | repo_git_url | git://github.com/tomasbjerre/violations-test.git | diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-get-changed-files.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-get-changed-files.feature index 4c2aac4..6a4fcb6 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-get-changed-files.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-get-changed-files.feature @@ -6,7 +6,7 @@ Feature: It should be possible to trigger for GitHub push events and get the cha | variable | expression | expressionType | defaultValue | regexpFilter | | changed_files | $.commits[*].['modified','added','removed'][*] | JSONPath | | | - Given received post content is: + When received post content is: """ { "commits": [ diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-specific-branches.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-specific-branches.feature index ba7d5e4..a9568a5 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-specific-branches.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-specific-branches.feature @@ -9,7 +9,7 @@ Feature: It should be possible to trigger for GitHub push events to specific bra Given filter is configured with text: $ref Given filter is configured with expression: ^(refs/heads/develop|refs/heads/feature/.+)$ - Given received post content is: + When received post content is: """ { "ref": "refs/heads/develop", @@ -17,7 +17,7 @@ Feature: It should be possible to trigger for GitHub push events to specific bra """ Then the job is triggered - Given received post content is: + When received post content is: """ { "ref": "refs/heads/feature/jira-123-impl-stuff", @@ -25,7 +25,7 @@ Feature: It should be possible to trigger for GitHub push events to specific bra """ Then the job is triggered - Given received post content is: + When received post content is: """ { "ref": "refs/heads/master", diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-tag.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-tag.feature new file mode 100644 index 0000000..2080a24 --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-tag.feature @@ -0,0 +1,47 @@ +Feature: It should be possible to trigger for GitHub tag push events. + + Scenario: Trigger a job when tag is pushed + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | ref | $.ref | JSONPath | | | + | commit | $.after | JSONPath | | | + | ssh_url | $.repository.ssh_url | JSONPath | | | + + Given filter is configured with text: $ref + Given filter is configured with expression: ^(refs/tags/.+)$ + + + When received post content is: + """ + { + "ref":"refs/tags/this-is-a-tag", + "after":"e961b09e4f432f3b1ad2690fd63820e9b8161128", + "repository":{ + "git_url":"git://github.com/tomasbjerre/Tomas_Bjerre_AB.git", + "ssh_url":"git@github.com:tomasbjerre/Tomas_Bjerre_AB.git", + "clone_url":"https://github.com/tomasbjerre/Tomas_Bjerre_AB.git", + }, + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | ref | refs/tags/this-is-a-tag | + | commit | e961b09e4f432f3b1ad2690fd63820e9b8161128 | + | ssh_url | git@github.com:tomasbjerre/Tomas_Bjerre_AB.git | + + + When received post content is: + """ + { + "ref": "refs/heads/feature/jira-123-impl-stuff", + "after":"e961b09e4f432f3b1ad2690fd63820e9b8161128", + "repository":{ + "git_url":"git://github.com/tomasbjerre/Tomas_Bjerre_AB.git", + "ssh_url":"git@github.com:tomasbjerre/Tomas_Bjerre_AB.git", + "clone_url":"https://github.com/tomasbjerre/Tomas_Bjerre_AB.git", + }, + } + """ + Then the job is not triggered diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-trigger-unless-specific-user.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-trigger-unless-specific-user.feature index 0ced224..8fd6a40 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-trigger-unless-specific-user.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-trigger-unless-specific-user.feature @@ -10,7 +10,7 @@ Feature: It should be possible to trigger for GitHub push events and filter out | text | expression | | $user | ^((?!build)) | - Given received post content is: + When received post content is: """ { "pusher": { @@ -20,7 +20,7 @@ Feature: It should be possible to trigger for GitHub push events and filter out """ Then the job is triggered - Given received post content is: + When received post content is: """ { "pusher": { @@ -42,7 +42,7 @@ Feature: It should be possible to trigger for GitHub push events and filter out | text | expression | | $ref $user | ^(refs/heads/develop\|refs/heads/feature/[^\s]+?)\s((?!build)) | - Given received post content is: + When received post content is: """ { "ref": "refs/heads/develop", @@ -53,7 +53,7 @@ Feature: It should be possible to trigger for GitHub push events and filter out """ Then the job is triggered - Given received post content is: + When received post content is: """ { "ref": "refs/heads/feature/jira-123-stuff", @@ -64,7 +64,7 @@ Feature: It should be possible to trigger for GitHub push events and filter out """ Then the job is triggered - Given received post content is: + When received post content is: """ { "ref": "refs/heads/feature/jira-123-stuff", @@ -75,7 +75,7 @@ Feature: It should be possible to trigger for GitHub push events and filter out """ Then the job is not triggered - Given received post content is: + When received post content is: """ { "ref": "refs/heads/jira-123-stuff", diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-trigger-when-specific-file-changes.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-trigger-when-specific-file-changes.feature index 31b4de1..6aff656 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-trigger-when-specific-file-changes.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/github/github-push-trigger-when-specific-file-changes.feature @@ -11,7 +11,7 @@ Feature: It should be possible to trigger for GitHub push events when a specific | $changed_files | "this_file_is_special.md" | - Given received post content is: + When received post content is: """ { "commits": [ @@ -30,7 +30,7 @@ Feature: It should be possible to trigger for GitHub push events when a specific Then the job is triggered - Given received post content is: + When received post content is: """ { "commits": [ @@ -53,7 +53,7 @@ Feature: It should be possible to trigger for GitHub push events when a specific Then the job is triggered - Given received post content is: + When received post content is: """ { "commits": [ @@ -76,7 +76,7 @@ Feature: It should be possible to trigger for GitHub push events when a specific Then the job is not triggered - Given received post content is: + When received post content is: """ { "commits": [ @@ -106,7 +106,7 @@ Feature: It should be possible to trigger for GitHub push events when a specific | $changed_files | "folder/subfolder/[^"]+?" | - Given received post content is: + When received post content is: """ { "commits": [ @@ -125,7 +125,7 @@ Feature: It should be possible to trigger for GitHub push events when a specific Then the job is triggered - Given received post content is: + When received post content is: """ { "commits": [ @@ -148,7 +148,7 @@ Feature: It should be possible to trigger for GitHub push events when a specific Then the job is triggered - Given received post content is: + When received post content is: """ { "commits": [ diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-mergerequest.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-mergerequest.feature index 2f4c030..8cc65f2 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-mergerequest.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-mergerequest.feature @@ -19,7 +19,7 @@ Feature: It should be possible to trigger for GitLab merge request events. Given filter is configured with text: $MR_OBJECT_KIND $MR_ACTION $MR_OLD_REV Given filter is configured with expression: ^merge_request\s(update\s.{40}$|open.*) - Given received post content is: + When received post content is: """ { "object_kind":"merge_request", @@ -62,7 +62,7 @@ Feature: It should be possible to trigger for GitLab merge request events. | MR_OBJECT_KIND | merge_request | - Given received post content is: + When received post content is: """ { "object_kind":"note", diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-push.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-push.feature index 9393d2b..6992058 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-push.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-push.feature @@ -12,7 +12,7 @@ Feature: It should be possible to trigger for GitLab push events. Given filter is configured with text: $object_kind $after Given filter is configured with expression: ^push\s.{40}$ - Given received post content is: + When received post content is: """ { "object_kind": "push", @@ -32,7 +32,7 @@ Feature: It should be possible to trigger for GitLab push events. | git_ssh_url | git@example.com:mike/diaspora.git | - Given received post content is: + When received post content is: """ { "object_kind": "note", @@ -58,7 +58,7 @@ Feature: It should be possible to trigger for GitLab push events. Given filter is configured with text: $object_kind $after $ref Given filter is configured with expression: ^push\s.{40}\srefs/heads/(develop|feature/.*)$ - Given received post content is: + When received post content is: """ { "object_kind": "push", @@ -77,7 +77,7 @@ Feature: It should be possible to trigger for GitLab push events. | ref | refs/heads/develop | | git_ssh_url | git@example.com:mike/diaspora.git | - Given received post content is: + When received post content is: """ { "object_kind": "push", @@ -90,7 +90,7 @@ Feature: It should be possible to trigger for GitLab push events. """ Then the job is triggered - Given received post content is: + When received post content is: """ { "object_kind": "push", diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-tag_push.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-tag_push.feature index fa30b75..6cf637e 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-tag_push.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-tag_push.feature @@ -13,7 +13,7 @@ Feature: It should be possible to trigger for GitLab tag events. Given filter is configured with text: $object_kind $before $after Given filter is configured with expression: ^tag_push\s0{40}\s.{40}$ - Given received post content is: + When received post content is: """ { "object_kind": "tag_push", @@ -35,7 +35,7 @@ Feature: It should be possible to trigger for GitLab tag events. | git_ssh_url | git@example.com:jsmith/example.git | - Given received post content is: + When received post content is: """ { "object_kind": "tag_push", diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/jsonpath.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/jsonpath.feature index 2a2d7f3..c112470 100644 --- a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/jsonpath.feature +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/jsonpath.feature @@ -2,7 +2,7 @@ Feature: It should be possible to parse JSON post content with JSONPath. Scenario: JSONPath is used to extract values from post content - Given received post content is: + When received post content is: """ { "ref": "refs/heads/develop",