aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketAdditionalParameterEnvironmentContributor.java
diff options
context:
space:
mode:
authorFrode Aannevik <frode.aa@gmail.com>2016-05-24 21:02:47 +0200
committerFrode Aannevik <frode.aa@gmail.com>2016-05-24 21:05:44 +0200
commiteed8f00e6eafe7272d07ee13cd991633b1393ba8 (patch)
tree6611cf2b0f5eb7071892ac267d759f124fbdea1f /src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketAdditionalParameterEnvironmentContributor.java
parent34849c3c1f9e229bdae47a6f2c7a19317aa18ed9 (diff)
downloadbbprb-eed8f00e6eafe7272d07ee13cd991633b1393ba8.tar.gz
Adapt to SECURITY-170
Use EnvironmentContributor instead of build parameters Based on https://github.com/jenkinsci/ghprb-plugin/pull/344 Fixes: #86
Diffstat (limited to 'src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketAdditionalParameterEnvironmentContributor.java')
-rw-r--r--src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketAdditionalParameterEnvironmentContributor.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketAdditionalParameterEnvironmentContributor.java b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketAdditionalParameterEnvironmentContributor.java
new file mode 100644
index 0000000..a4ff97d
--- /dev/null
+++ b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketAdditionalParameterEnvironmentContributor.java
@@ -0,0 +1,53 @@
+package bitbucketpullrequestbuilder.bitbucketpullrequestbuilder;
+
+import hudson.EnvVars;
+import hudson.Extension;
+import hudson.model.*;
+
+import java.io.IOException;
+import java.util.ArrayList;
+
+@Extension
+public class BitbucketAdditionalParameterEnvironmentContributor extends EnvironmentContributor {
+ @Override
+ public void buildEnvironmentFor(Run run, EnvVars envVars, TaskListener taskListener)
+ throws IOException, InterruptedException {
+
+ BitbucketCause cause = (BitbucketCause) run.getCause(BitbucketCause.class);
+ if (cause == null) {
+ return;
+ }
+
+ run.addAction(getDefaultParameters(run));
+
+ putEnvVar(envVars, "sourceBranch", cause.getSourceBranch());
+ putEnvVar(envVars, "targetBranch", cause.getTargetBranch());
+ putEnvVar(envVars, "repositoryOwner", cause.getRepositoryOwner());
+ putEnvVar(envVars, "repositoryName", cause.getRepositoryName());
+ putEnvVar(envVars, "pullRequestId", cause.getPullRequestId());
+ putEnvVar(envVars, "destinationRepositoryOwner", cause.getDestinationRepositoryOwner());
+ putEnvVar(envVars, "destinationRepositoryName", cause.getDestinationRepositoryName());
+ putEnvVar(envVars, "pullRequestTitle", cause.getPullRequestTitle());
+ putEnvVar(envVars, "pullRequestAuthor", cause.getPullRequestAuthor());
+
+ }
+
+ private static void putEnvVar(EnvVars envs, String name, String value) {
+ envs.put(name, getString(value, ""));
+ }
+
+ private static String getString(String actual, String d) {
+ return actual == null ? d : actual;
+ }
+
+ private ParametersAction getDefaultParameters(Run<?, ?> run) {
+ ArrayList<ParameterValue> values = new ArrayList<ParameterValue>();
+ ParametersDefinitionProperty definitionProperty = run.getParent().getProperty(ParametersDefinitionProperty.class);
+ if (definitionProperty != null) {
+ for (ParameterDefinition pd : definitionProperty.getParameterDefinitions()) {
+ values.add(pd.getDefaultParameterValue());
+ }
+ }
+ return new ParametersAction(values);
+ }
+}