Skip to content

Commit 947445a

Browse files
authored
Merge branch 'master' into fix/missing-defined-variables
2 parents 02cba11 + 6947aa0 commit 947445a

File tree

8 files changed

+50
-3
lines changed

8 files changed

+50
-3
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ gitlabSourceNamespace
9191
gitlabSourceRepoURL
9292
gitlabSourceRepoSshUrl
9393
gitlabSourceRepoHttpUrl
94+
gitlabMergeCommitSha
9495
gitlabMergeRequestTitle
9596
gitlabMergeRequestDescription
9697
gitlabMergeRequestId

src/main/java/com/dabsquared/gitlabjenkins/cause/CauseData.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public final class CauseData {
3131
private final String sourceRepoUrl;
3232
private final String sourceRepoSshUrl;
3333
private final String sourceRepoHttpUrl;
34+
private final String mergeCommitSha;
3435
private final String mergeRequestTitle;
3536
private final String mergeRequestDescription;
3637
private final Integer mergeRequestId;
@@ -77,6 +78,7 @@ public final class CauseData {
7778
String sourceRepoUrl,
7879
String sourceRepoSshUrl,
7980
String sourceRepoHttpUrl,
81+
String mergeCommitSha,
8082
String mergeRequestTitle,
8183
String mergeRequestDescription,
8284
Integer mergeRequestId,
@@ -120,6 +122,7 @@ public final class CauseData {
120122
this.sourceRepoUrl = sourceRepoUrl == null ? sourceRepoSshUrl : sourceRepoUrl;
121123
this.sourceRepoSshUrl = Objects.requireNonNull(sourceRepoSshUrl, "sourceRepoSshUrl must not be null.");
122124
this.sourceRepoHttpUrl = Objects.requireNonNull(sourceRepoHttpUrl, "sourceRepoHttpUrl must not be null.");
125+
this.mergeCommitSha = mergeCommitSha == null ? "" : mergeCommitSha;
123126
this.mergeRequestTitle = Objects.requireNonNull(mergeRequestTitle, "mergeRequestTitle must not be null.");
124127
this.mergeRequestDescription = mergeRequestDescription == null ? "" : mergeRequestDescription;
125128
this.mergeRequestId = mergeRequestId;
@@ -166,6 +169,7 @@ public Map<String, String> getBuildVariables() {
166169
variables.put("gitlabSourceRepoURL", sourceRepoUrl);
167170
variables.put("gitlabSourceRepoSshUrl", sourceRepoSshUrl);
168171
variables.put("gitlabSourceRepoHttpUrl", sourceRepoHttpUrl);
172+
variables.putIfNotNull("gitlabMergeCommitSha", mergeCommitSha);
169173
variables.put("gitlabMergeRequestTitle", mergeRequestTitle);
170174
variables.put("gitlabMergeRequestDescription", mergeRequestDescription);
171175
variables.put("gitlabMergeRequestId", mergeRequestId == null ? "" : mergeRequestId.toString());
@@ -273,6 +277,11 @@ public String getMergeRequestTitle() {
273277
return mergeRequestTitle;
274278
}
275279

280+
@Exported
281+
public String getMergeCommitSha() {
282+
return mergeCommitSha;
283+
}
284+
276285
@Exported
277286
public String getMergeRequestDescription() {
278287
return mergeRequestDescription;
@@ -421,6 +430,7 @@ public MergeRequest getMergeRequest() {
421430
return new MergeRequest(
422431
mergeRequestId,
423432
mergeRequestIid,
433+
mergeCommitSha,
424434
sourceBranch,
425435
targetBranch,
426436
mergeRequestTitle,
@@ -454,6 +464,7 @@ public boolean equals(Object o) {
454464
.append(sourceRepoUrl, causeData.sourceRepoUrl)
455465
.append(sourceRepoSshUrl, causeData.sourceRepoSshUrl)
456466
.append(sourceRepoHttpUrl, causeData.sourceRepoHttpUrl)
467+
.append(mergeCommitSha, causeData.mergeCommitSha)
457468
.append(mergeRequestTitle, causeData.mergeRequestTitle)
458469
.append(mergeRequestDescription, causeData.mergeRequestDescription)
459470
.append(mergeRequestId, causeData.mergeRequestId)
@@ -502,6 +513,7 @@ public int hashCode() {
502513
.append(sourceRepoUrl)
503514
.append(sourceRepoSshUrl)
504515
.append(sourceRepoHttpUrl)
516+
.append(mergeCommitSha)
505517
.append(mergeRequestTitle)
506518
.append(mergeRequestDescription)
507519
.append(mergeRequestId)
@@ -550,6 +562,7 @@ public String toString() {
550562
.append("sourceRepoUrl", sourceRepoUrl)
551563
.append("sourceRepoSshUrl", sourceRepoSshUrl)
552564
.append("sourceRepoHttpUrl", sourceRepoHttpUrl)
565+
.append("mergeCommitSha", mergeCommitSha)
553566
.append("mergeRequestTitle", mergeRequestTitle)
554567
.append("mergeRequestDescription", mergeRequestDescription)
555568
.append("mergeRequestId", mergeRequestId)

src/main/java/com/dabsquared/gitlabjenkins/gitlab/api/model/MergeRequest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
public class MergeRequest {
1818
private Integer id;
1919
private Integer iid;
20+
private String commitSha;
2021
private String sourceBranch;
2122
private String targetBranch;
2223
private Integer projectId;
@@ -41,6 +42,7 @@ public MergeRequest() {
4142
public MergeRequest(
4243
int id,
4344
int iid,
45+
String commitSha,
4446
String sourceBranch,
4547
String targetBranch,
4648
String title,
@@ -50,6 +52,7 @@ public MergeRequest(
5052
String mergeStatus) {
5153
this.id = id;
5254
this.iid = iid;
55+
this.commitSha = commitSha;
5356
this.sourceBranch = sourceBranch;
5457
this.targetBranch = targetBranch;
5558
this.title = title;
@@ -77,6 +80,15 @@ public void setIid(Integer iid) {
7780
this.iid = iid;
7881
}
7982

83+
@Exported
84+
public String getCommitSha() {
85+
return commitSha;
86+
}
87+
88+
public void setCommitSha(String commitSha) {
89+
this.commitSha = commitSha;
90+
}
91+
8092
@Exported
8193
public String getSourceBranch() {
8294
return sourceBranch;
@@ -233,6 +245,7 @@ public boolean equals(Object o) {
233245
return new EqualsBuilder()
234246
.append(id, that.id)
235247
.append(iid, that.iid)
248+
.append(commitSha, that.commitSha)
236249
.append(sourceBranch, that.sourceBranch)
237250
.append(targetBranch, that.targetBranch)
238251
.append(projectId, that.projectId)
@@ -257,6 +270,7 @@ public int hashCode() {
257270
return new HashCodeBuilder(17, 37)
258271
.append(id)
259272
.append(iid)
273+
.append(commitSha)
260274
.append(sourceBranch)
261275
.append(targetBranch)
262276
.append(projectId)
@@ -281,6 +295,7 @@ public String toString() {
281295
return new ToStringBuilder(this)
282296
.append("id", id)
283297
.append("iid", iid)
298+
.append("commitSha", commitSha)
284299
.append("sourceBranch", sourceBranch)
285300
.append("targetBranch", targetBranch)
286301
.append("projectId", projectId)

src/main/java/com/dabsquared/gitlabjenkins/gitlab/hook/model/MergeRequestObjectAttributes.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class MergeRequestObjectAttributes {
3030
private Commit lastCommit;
3131
private String oldrev;
3232
private String mergeStatus;
33+
private String mergeCommitSha;
3334
private String url;
3435
private Action action;
3536
private Boolean workInProgress;
@@ -170,6 +171,14 @@ public void setOldrev(String oldrev) {
170171
this.oldrev = oldrev;
171172
}
172173

174+
public String getMergeCommitSha() {
175+
return mergeCommitSha;
176+
}
177+
178+
public void setMergeCommitSha(String mergeCommitSha) {
179+
this.mergeCommitSha = mergeCommitSha;
180+
}
181+
173182
public String getMergeStatus() {
174183
return mergeStatus;
175184
}
@@ -228,6 +237,7 @@ public boolean equals(Object o) {
228237
.append(source, that.source)
229238
.append(target, that.target)
230239
.append(lastCommit, that.lastCommit)
240+
.append(mergeCommitSha, that.mergeCommitSha)
231241
.append(mergeStatus, that.mergeStatus)
232242
.append(url, that.url)
233243
.append(action, that.action)
@@ -255,6 +265,7 @@ public int hashCode() {
255265
.append(source)
256266
.append(target)
257267
.append(lastCommit)
268+
.append(mergeCommitSha)
258269
.append(mergeStatus)
259270
.append(url)
260271
.append(action)
@@ -281,6 +292,7 @@ public String toString() {
281292
.append("source", source)
282293
.append("target", target)
283294
.append("lastCommit", lastCommit)
295+
.append("mergeCommitSha", mergeCommitSha)
284296
.append("mergeStatus", mergeStatus)
285297
.append("url", url)
286298
.append("action", action)

src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ protected CauseData retrieveCauseData(MergeRequestHook hook) {
205205
.withSourceRepoUrl(hook.getObjectAttributes().getSource().getUrl())
206206
.withSourceRepoSshUrl(hook.getObjectAttributes().getSource().getSshUrl())
207207
.withSourceRepoHttpUrl(hook.getObjectAttributes().getSource().getHttpUrl())
208+
.withMergeCommitSha(hook.getObjectAttributes().getMergeCommitSha())
208209
.withMergeRequestTitle(hook.getObjectAttributes().getTitle())
209210
.withMergeRequestDescription(hook.getObjectAttributes().getDescription())
210211
.withMergeRequestId(hook.getObjectAttributes().getId())
@@ -242,7 +243,9 @@ protected BuildStatusUpdate retrieveBuildStatusUpdate(MergeRequestHook hook) {
242243
}
243244

244245
private String retrieveRevisionToBuild(MergeRequestHook hook) throws NoRevisionToBuildException {
245-
if (hook.getObjectAttributes() != null
246+
if (hook.getObjectAttributes().getMergeCommitSha() != null) {
247+
return hook.getObjectAttributes().getMergeCommitSha();
248+
} else if (hook.getObjectAttributes() != null
246249
&& hook.getObjectAttributes().getLastCommit() != null
247250
&& hook.getObjectAttributes().getLastCommit().getId() != null) {
248251

src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/push/OpenMergeRequestPushHookTriggerHandler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ private CauseData retrieveCauseData(PushHook hook, Project project, MergeRequest
165165
.withSourceRepoUrl(project.getSshUrlToRepo())
166166
.withSourceRepoSshUrl(project.getSshUrlToRepo())
167167
.withSourceRepoHttpUrl(project.getHttpUrlToRepo())
168+
.withMergeCommitSha(mergeRequest.getCommitSha())
168169
.withMergeRequestTitle(mergeRequest.getTitle())
169170
.withMergeRequestDescription(mergeRequest.getDescription())
170171
.withMergeRequestId(mergeRequest.getId())

src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/push/PushHookTriggerHandlerImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ protected CauseData retrieveCauseData(PushHook hook) {
7373
.withSourceRepoUrl(hook.getRepository().getUrl())
7474
.withSourceRepoSshUrl(hook.getRepository().getGitSshUrl())
7575
.withSourceRepoHttpUrl(hook.getRepository().getGitHttpUrl())
76+
.withMergeCommitSha(null)
7677
.withMergeRequestTitle("")
7778
.withMergeRequestDescription("")
7879
.withMergeRequestId(null)

src/test/java/com/dabsquared/gitlabjenkins/publisher/TestUtility.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ final class TestUtility {
4444
static final String GITLAB_CONNECTION_V3 = "GitLabV3";
4545
static final String GITLAB_CONNECTION_V4 = "GitLabV4";
4646
static final String BUILD_URL = "/build/123";
47+
static final String MERGE_COMMIT_SHA = "eKJ3wuqJT98Kc8TCcBK7oggLR1E9Bty7eqSHfSLT";
4748
static final int BUILD_NUMBER = 1;
4849
static final int PROJECT_ID = 3;
4950
static final int MERGE_REQUEST_ID = 1;
@@ -130,8 +131,8 @@ static String formatNote(AbstractBuild build, String note) {
130131

131132
static <P extends MergeRequestNotifier> P preparePublisher(P publisher, AbstractBuild build) {
132133
P spyPublisher = spy(publisher);
133-
MergeRequest mergeRequest =
134-
new MergeRequest(MERGE_REQUEST_ID, MERGE_REQUEST_IID, "", "", "", PROJECT_ID, PROJECT_ID, "", "");
134+
MergeRequest mergeRequest = new MergeRequest(
135+
MERGE_REQUEST_ID, MERGE_REQUEST_IID, MERGE_COMMIT_SHA, "", "", "", PROJECT_ID, PROJECT_ID, "", "");
135136
doReturn(mergeRequest).when(spyPublisher).getMergeRequest(build);
136137
return spyPublisher;
137138
}

0 commit comments

Comments
 (0)