Skip to content

Commit 91cd231

Browse files
committed
Add the draft option to the Merge Request creation
1 parent d989951 commit 91cd231

File tree

3 files changed

+81
-1
lines changed

3 files changed

+81
-1
lines changed

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
java temurin-11.0.28+6

gitlab4j-models/src/main/java/org/gitlab4j/api/models/MergeRequestParams.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class MergeRequestParams implements Serializable {
2929
private Boolean discussionLocked;
3030
private Boolean allowCollaboration;
3131
private Integer approvalsBeforeMerge;
32+
private Boolean draft;
3233

3334
/**
3435
* Set the source branch. This is for merge request creation only.
@@ -220,6 +221,17 @@ public MergeRequestParams withApprovalsBeforeMerge(Integer approvalsBeforeMerge)
220221
return (this);
221222
}
222223

224+
/**
225+
* Set the draft flag of the merge request.
226+
*
227+
* @param draft the draft flag to set
228+
* @return the reference to this MergeRequestParams instance
229+
*/
230+
public MergeRequestParams withDraft(Boolean draft) {
231+
this.draft = draft;
232+
return (this);
233+
}
234+
223235
/**
224236
* Get the form params specified by this instance.
225237
*
@@ -229,9 +241,15 @@ public MergeRequestParams withApprovalsBeforeMerge(Integer approvalsBeforeMerge)
229241
*/
230242
public GitLabForm getForm(boolean isCreate) {
231243

244+
String titleToUse = title;
245+
if (Boolean.TRUE.equals(draft)) {
246+
titleToUse = "Draft: " + (title != null ? title : "");
247+
// titleToUse = "Draft: " + title;
248+
}
249+
232250
GitLabForm form = new GitLabForm()
233251
.withParam("target_branch", targetBranch, isCreate)
234-
.withParam("title", title, isCreate)
252+
.withParam("title", titleToUse, isCreate)
235253
.withParam("assignee_id", assigneeId)
236254
.withParam("assignee_ids", assigneeIds)
237255
.withParam("reviewer_ids", reviewerIds)
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package org.gitlab4j.api.models;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotNull;
5+
import static org.junit.jupiter.api.Assertions.assertNull;
6+
7+
import org.gitlab4j.models.GitLabForm;
8+
import org.gitlab4j.models.GitLabFormValue;
9+
import org.junit.jupiter.api.Test;
10+
11+
public class TestMergeRequestParams {
12+
13+
@Test
14+
public void testDraftPrefix() {
15+
MergeRequestParams params =
16+
new MergeRequestParams().withTitle("My Title").withDraft(true);
17+
18+
GitLabForm form = params.getForm(true);
19+
Object titleValue = form.getFormValues().get("title").getValue();
20+
assertEquals("Draft: My Title", titleValue);
21+
}
22+
23+
@Test
24+
public void testNoDraftPrefix() {
25+
MergeRequestParams params =
26+
new MergeRequestParams().withTitle("My Title").withDraft(false);
27+
28+
GitLabForm form = params.getForm(true);
29+
Object titleValue = form.getFormValues().get("title").getValue();
30+
assertEquals("My Title", titleValue);
31+
}
32+
33+
@Test
34+
public void testNullDraftPrefix() {
35+
MergeRequestParams params =
36+
new MergeRequestParams().withTitle("My Title").withDraft(null);
37+
38+
GitLabForm form = params.getForm(true);
39+
Object titleValue = form.getFormValues().get("title").getValue();
40+
assertEquals("My Title", titleValue);
41+
}
42+
43+
@Test
44+
public void testDraftWithNullTitle() {
45+
MergeRequestParams params = new MergeRequestParams().withTitle(null).withDraft(true);
46+
47+
GitLabForm form = params.getForm(true);
48+
Object titleValue = form.getFormValues().get("title").getValue();
49+
assertEquals("Draft: ", titleValue);
50+
}
51+
52+
@Test
53+
public void testNoDraftWithNullTitle() {
54+
MergeRequestParams params = new MergeRequestParams().withTitle(null).withDraft(false);
55+
56+
GitLabForm form = params.getForm(true);
57+
GitLabFormValue titleFormValue = form.getFormValues().get("title");
58+
assertNotNull(titleFormValue);
59+
assertNull(titleFormValue.getValue());
60+
}
61+
}

0 commit comments

Comments
 (0)