diff options
Diffstat (limited to 'src/main/java/org/jenkinsci/plugins/bbprb/BitbucketEnv.java')
-rw-r--r-- | src/main/java/org/jenkinsci/plugins/bbprb/BitbucketEnv.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/java/org/jenkinsci/plugins/bbprb/BitbucketEnv.java b/src/main/java/org/jenkinsci/plugins/bbprb/BitbucketEnv.java new file mode 100644 index 0000000..816f57d --- /dev/null +++ b/src/main/java/org/jenkinsci/plugins/bbprb/BitbucketEnv.java @@ -0,0 +1,41 @@ +package org.jenkinsci.plugins.bbprb; + +import hudson.EnvVars; +import hudson.Extension; +import hudson.model.*; + +import java.io.IOException; + +@Extension +public class BitbucketEnv 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; + } + + putEnvVar(envVars, "bbprbDestinationBranch", cause.getDestinationBranch()); + putEnvVar(envVars, "bbprbDestinationCommitHash", + cause.getDestinationCommitHash()); + putEnvVar(envVars, "bbprbDestinationRepository", + cause.getDestinationRepository()); + putEnvVar(envVars, "bbprbPullRequestAuthor", cause.getPullRequestAuthor()); + putEnvVar(envVars, "bbprbPullRequestId", cause.getPullRequestId()); + putEnvVar(envVars, "bbprbPullRequestTitle", cause.getPullRequestTitle()); + putEnvVar(envVars, "bbprbSourceBranch", cause.getSourceBranch()); + putEnvVar(envVars, "bbprbSourceCommitHash", cause.getSourceCommitHash()); + putEnvVar(envVars, "bbprbSourceRepository", cause.getSourceRepository()); + } + + 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; + } +} |