Skip to content

Commit 839e391

Browse files
novalistimols
authored andcommitted
API to set approvers (timols#319)
1 parent 6367b69 commit 839e391

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

src/main/java/org/gitlab/api/GitlabAPI.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Arrays;
2121
import java.util.Date;
2222
import java.util.List;
23+
import java.util.Collection;
2324

2425
import static org.gitlab.api.http.Method.*;
2526

@@ -142,6 +143,10 @@ public GitlabHTTPRequestor dispatch() {
142143
return new GitlabHTTPRequestor(this).authenticate(apiToken, tokenType, authMethod).method(POST);
143144
}
144145

146+
public GitlabHTTPRequestor put() {
147+
return new GitlabHTTPRequestor(this).authenticate(apiToken, tokenType, authMethod).method(PUT);
148+
}
149+
145150
public boolean isIgnoreCertificateErrors() {
146151
return ignoreCertificateErrors;
147152
}
@@ -1477,6 +1482,36 @@ public GitlabMergeRequestApprovals getMergeRequestApprovals(GitlabMergeRequest m
14771482
return retrieve().to(tailUrl, GitlabMergeRequestApprovals.class);
14781483
}
14791484

1485+
/**
1486+
* Set the number of required approvers.
1487+
*
1488+
* EE only.
1489+
*/
1490+
public GitlabMergeRequestApprovals setMergeRequestApprovals(GitlabMergeRequest mr, int count) throws IOException {
1491+
String tailUrl = GitlabProject.URL + "/" + sanitizeProjectId(mr.getProjectId()) +
1492+
GitlabMergeRequest.URL + "/" + mr.getIid() + GitlabMergeRequestApprovals.URL;
1493+
return dispatch()
1494+
.with("approvals_required", count)
1495+
.to(tailUrl, GitlabMergeRequestApprovals.class);
1496+
}
1497+
1498+
/**
1499+
* Set the list of approvers. Important: Approvers and groups not
1500+
* in the request will be removed
1501+
*
1502+
* EE only.
1503+
*/
1504+
public GitlabMergeRequestApprovals setMergeRequestApprovers(GitlabMergeRequest mr,
1505+
Collection<Integer> userApproverIds,
1506+
Collection<Integer> groupApproverIds) throws IOException {
1507+
String tailUrl = GitlabProject.URL + "/" + sanitizeProjectId(mr.getProjectId()) +
1508+
GitlabMergeRequest.URL + "/" + mr.getIid() + GitlabMergeRequestApprovals.APPROVERS_URL;
1509+
return put()
1510+
.with("approver_ids", userApproverIds)
1511+
.with("approver_group_ids", groupApproverIds)
1512+
.to(tailUrl, GitlabMergeRequestApprovals.class);
1513+
}
1514+
14801515
/**
14811516
* Cherry picks a commit.
14821517
*

src/main/java/org/gitlab/api/models/GitlabMergeRequestApprovals.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
public class GitlabMergeRequestApprovals {
1111
public static final String URL = "/approvals";
12+
public static final String APPROVERS_URL = "/approvers";
1213

1314
private Integer id;
1415
private Integer iid;
@@ -39,6 +40,10 @@ public class GitlabMergeRequestApprovals {
3940
@JsonProperty("suggested_approvers")
4041
private List<GitlabUser> suggestedApprovers;
4142

43+
private List<GitlabUser> approvers;
44+
45+
@JsonProperty("approver_groups")
46+
private List<GitlabGroup> approverGroups;
4247

4348
public Integer getId() {
4449
return id;
@@ -135,12 +140,29 @@ public List<GitlabApprovedBy> getApprovedBy() {
135140
public void setApprovedBy(List<GitlabApprovedBy> approvedBy) {
136141
this.approvedBy = approvedBy;
137142
}
138-
143+
139144
public List<GitlabUser> getSuggestedApprovers() {
140145
return suggestedApprovers;
141146
}
142147

143148
public void setSuggestedApprovers(List<GitlabUser> suggestedApprovers) {
144149
this.suggestedApprovers = suggestedApprovers;
145150
}
151+
152+
public List<GitlabUser> getApprovers() {
153+
return approvers;
154+
}
155+
156+
public void setApprovers(List<GitlabUser> approvers) {
157+
this.approvers = approvers;
158+
}
159+
160+
public List<GitlabGroup> getApproverGroups() {
161+
return approverGroups;
162+
}
163+
164+
public void setApproverGroups(List<GitlabGroup> approverGroups) {
165+
this.approverGroups = approverGroups;
166+
}
167+
146168
}

0 commit comments

Comments
 (0)