Skip to content

Commit 3f8a54f

Browse files
committed
Update EventMergeRequest webhook to handle non-string merge param values
The merge_params property can contain non-string values such as "should_remove_source_branch" which is a boolean or "train_ref" which is an object
1 parent 183a976 commit 3f8a54f

File tree

2 files changed

+117
-5
lines changed

2 files changed

+117
-5
lines changed

gitlab4j-models/src/main/java/org/gitlab4j/api/webhook/EventMergeRequest.java

Lines changed: 106 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import java.util.Date;
44
import java.util.List;
5-
import java.util.Map;
65

76
import org.gitlab4j.api.models.Assignee;
87
import org.gitlab4j.api.models.Duration;
98
import org.gitlab4j.models.utils.JacksonJson;
109

10+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
11+
import com.fasterxml.jackson.annotation.JsonInclude;
12+
1113
public class EventMergeRequest {
1214

1315
private Long assigneeId;
@@ -48,7 +50,8 @@ public class EventMergeRequest {
4850

4951
private Long updatedById;
5052
private String mergeError;
51-
private Map<String, String> mergeParams;
53+
private MergeParams mergeParams;
54+
5255
private Boolean mergeWhenPipelineSucceeds;
5356
private Long mergeUserId;
5457
private Date deletedAt;
@@ -358,11 +361,11 @@ public void setMergeError(String mergeError) {
358361
this.mergeError = mergeError;
359362
}
360363

361-
public Map<String, String> getMergeParams() {
364+
public MergeParams getMergeParams() {
362365
return mergeParams;
363366
}
364367

365-
public void setMergeParams(Map<String, String> mergeParams) {
368+
public void setMergeParams(MergeParams mergeParams) {
366369
this.mergeParams = mergeParams;
367370
}
368371

@@ -518,6 +521,105 @@ public void setOldrev(String oldrev) {
518521
this.oldrev = oldrev;
519522
}
520523

524+
@JsonIgnoreProperties(ignoreUnknown = true)
525+
@JsonInclude(JsonInclude.Include.NON_NULL)
526+
public static class MergeParams {
527+
private String autoMergeStrategy;
528+
private String forceRemoveSourceBranch;
529+
private Boolean shouldRemoveSourceBranch;
530+
private String commitMessage;
531+
private String squashCommitMessage;
532+
private String sha;
533+
private TrainRef trainRef;
534+
535+
public String getAutoMergeStrategy() {
536+
return autoMergeStrategy;
537+
}
538+
539+
public void setAutoMergeStrategy(String autoMergeStrategy) {
540+
this.autoMergeStrategy = autoMergeStrategy;
541+
}
542+
543+
public String getForceRemoveSourceBranch() {
544+
return forceRemoveSourceBranch;
545+
}
546+
547+
public void setForceRemoveSourceBranch(String forceRemoveSourceBranch) {
548+
this.forceRemoveSourceBranch = forceRemoveSourceBranch;
549+
}
550+
551+
public Boolean getShouldRemoveSourceBranch() {
552+
return shouldRemoveSourceBranch;
553+
}
554+
555+
public void setShouldRemoveSourceBranch(Boolean shouldRemoveSourceBranch) {
556+
this.shouldRemoveSourceBranch = shouldRemoveSourceBranch;
557+
}
558+
559+
public String getCommitMessage() {
560+
return commitMessage;
561+
}
562+
563+
public void setCommitMessage(String commitMessage) {
564+
this.commitMessage = commitMessage;
565+
}
566+
567+
public String getSquashCommitMessage() {
568+
return squashCommitMessage;
569+
}
570+
571+
public void setSquashCommitMessage(String squashCommitMessage) {
572+
this.squashCommitMessage = squashCommitMessage;
573+
}
574+
575+
public String getSha() {
576+
return sha;
577+
}
578+
579+
public void setSha(String sha) {
580+
this.sha = sha;
581+
}
582+
583+
public TrainRef getTrainRef() {
584+
return trainRef;
585+
}
586+
587+
public void setTrainRef(TrainRef trainRef) {
588+
this.trainRef = trainRef;
589+
}
590+
591+
@JsonIgnoreProperties(ignoreUnknown = true)
592+
public static class TrainRef {
593+
private String commitSha;
594+
private String mergeCommitSha;
595+
private String squashCommitSha;
596+
597+
public String getCommitSha() {
598+
return commitSha;
599+
}
600+
601+
public void setCommitSha(String commitSha) {
602+
this.commitSha = commitSha;
603+
}
604+
605+
public String getMergeCommitSha() {
606+
return mergeCommitSha;
607+
}
608+
609+
public void setMergeCommitSha(String mergeCommitSha) {
610+
this.mergeCommitSha = mergeCommitSha;
611+
}
612+
613+
public String getSquashCommitSha() {
614+
return squashCommitSha;
615+
}
616+
617+
public void setSquashCommitSha(String squashCommitSha) {
618+
this.squashCommitSha = squashCommitSha;
619+
}
620+
}
621+
}
622+
521623
@Override
522624
public String toString() {
523625
return (JacksonJson.toJsonString(this));

gitlab4j-models/src/test/resources/org/gitlab4j/models/merge-request-system-hook-event.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,17 @@
4040
"description": "",
4141
"updated_by_id": 1,
4242
"merge_params": {
43-
"force_remove_source_branch": "0"
43+
"auto_merge_strategy": "merge_train",
44+
"force_remove_source_branch": "0",
45+
"should_remove_source_branch": true,
46+
"commit_message": "commit message",
47+
"squash_commit_message": "squash commit message",
48+
"sha": "123abc",
49+
"train_ref": {
50+
"commit_sha": "abcd1234",
51+
"merge_commit_sha": "bcde2345",
52+
"squash_commit_sha": "cdef3456"
53+
}
4454
},
4555
"merge_when_pipeline_succeeds": false,
4656
"lock_version": 5,

0 commit comments

Comments
 (0)