diff --git a/pom.xml b/pom.xml
index a7c7d488..8510518e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,7 @@
-SNAPSHOT
2.138.4
8
- 2.4.1
+ 2.4.2-SNAPSHOT
3.10.0
diff --git a/src/main/java/jenkins/branch/BranchNameContributor.java b/src/main/java/jenkins/branch/BranchNameContributor.java
index 79604915..f551100d 100644
--- a/src/main/java/jenkins/branch/BranchNameContributor.java
+++ b/src/main/java/jenkins/branch/BranchNameContributor.java
@@ -32,12 +32,13 @@
import hudson.model.TaskListener;
import java.io.IOException;
import java.util.Date;
-import jenkins.scm.api.SCMHeadOrigin;
import jenkins.scm.api.SCMHead;
+import jenkins.scm.api.SCMHeadOrigin;
import jenkins.scm.api.metadata.ContributorMetadataAction;
import jenkins.scm.api.metadata.ObjectMetadataAction;
import jenkins.scm.api.mixin.ChangeRequestSCMHead;
import jenkins.scm.api.mixin.ChangeRequestSCMHead2;
+import jenkins.scm.api.mixin.ChangeRequestSCMHead3;
import jenkins.scm.api.mixin.TagSCMHead;
/**
@@ -68,6 +69,9 @@ public void buildEnvironmentFor(Job j, EnvVars envs, TaskListener listener) thro
if (head instanceof ChangeRequestSCMHead2) {
envs.putIfNotNull("CHANGE_BRANCH", ((ChangeRequestSCMHead2) head).getOriginName());
}
+ if (head instanceof ChangeRequestSCMHead3) {
+ envs.putIfNotNull("CHANGE_BRANCH_COMMIT_ID", ((ChangeRequestSCMHead3) head).getSourceCommitId());
+ }
SCMHeadOrigin origin = head.getOrigin();
if (origin instanceof SCMHeadOrigin.Fork) {
envs.putIfNotNull("CHANGE_FORK", ((SCMHeadOrigin.Fork) origin).getName());
diff --git a/src/test/java/jenkins/branch/BranchNameContributorTest.java b/src/test/java/jenkins/branch/BranchNameContributorTest.java
index 7c3855fe..5a5f15d0 100644
--- a/src/test/java/jenkins/branch/BranchNameContributorTest.java
+++ b/src/test/java/jenkins/branch/BranchNameContributorTest.java
@@ -122,6 +122,7 @@ public void buildEnvironmentFor() throws Exception {
is("CHANGE_TITLE"),
is("CHANGE_URL"),
is("CHANGE_BRANCH"),
+ is("CHANGE_BRANCH_COMMIT_ID"),
is("CHANGE_AUTHOR"),
is("CHANGE_AUTHOR_EMAIL"),
is("CHANGE_AUTHOR_DISPLAY_NAME")
@@ -130,6 +131,7 @@ public void buildEnvironmentFor() throws Exception {
assertThat(env.get("CHANGE_ID"), is(cr1Num.toString()));
assertThat(env.get("CHANGE_TARGET"), is("master"));
assertThat(env.get("CHANGE_BRANCH"), is("CR-" + cr1Num));
+ assertThat(env.get("CHANGE_BRANCH_COMMIT_ID"), is("sha" + cr1Num));
assertThat(env.get("CHANGE_TITLE"), is("Change request #" + cr1Num));
assertThat(env.get("CHANGE_URL"), is("http://changes.example.com/" + cr1Num));
assertThat(env.get("CHANGE_AUTHOR"), is("bob"));
@@ -145,6 +147,7 @@ public void buildEnvironmentFor() throws Exception {
is("CHANGE_TITLE"),
is("CHANGE_URL"),
is("CHANGE_BRANCH"),
+ is("CHANGE_BRANCH_COMMIT_ID"),
is("CHANGE_FORK"),
is("CHANGE_AUTHOR"),
is("CHANGE_AUTHOR_EMAIL"),
@@ -154,6 +157,7 @@ public void buildEnvironmentFor() throws Exception {
assertThat(env.get("CHANGE_ID"), is(cr2Num.toString()));
assertThat(env.get("CHANGE_TARGET"), is("master"));
assertThat(env.get("CHANGE_BRANCH"), is("CR-" + cr2Num));
+ assertThat(env.get("CHANGE_BRANCH_COMMIT_ID"), is("sha" + cr2Num));
assertThat(env.get("CHANGE_FORK"), is("fork"));
assertThat(env.get("CHANGE_TITLE"), is("Change request #" + cr2Num));
assertThat(env.get("CHANGE_URL"), is("http://changes.example.com/" + cr2Num));