summaryrefslogtreecommitdiff
path: root/gitlab
diff options
context:
space:
mode:
authorSpencer Young <spencer.young@spyoung.com>2021-04-13 18:16:32 -0700
committerJohn L. Villalovos <john@sodarock.com>2021-05-31 14:16:42 -0700
commit676d1f6565617a28ee84eae20e945f23aaf3d86f (patch)
treef930a80791114b1d0c9743f135ae1ee469a68967 /gitlab
parentfbbc0d400015d7366952a66e4401215adff709f0 (diff)
downloadgitlab-676d1f6565617a28ee84eae20e945f23aaf3d86f.tar.gz
feat(api): add support for creating/editing reviewers in project merge requests
Diffstat (limited to 'gitlab')
-rw-r--r--gitlab/v4/objects/merge_requests.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/gitlab/v4/objects/merge_requests.py b/gitlab/v4/objects/merge_requests.py
index dd118d0..4ca320b 100644
--- a/gitlab/v4/objects/merge_requests.py
+++ b/gitlab/v4/objects/merge_requests.py
@@ -138,6 +138,22 @@ class ProjectMergeRequest(
):
_id_attr = "iid"
+ @property
+ def reviewer_ids(self):
+ return [reviewer["id"] for reviewer in self.reviewers]
+
+ @reviewer_ids.setter
+ def reviewer_ids(self, new_reviewer_ids):
+ new_reviewers = [{"id": id} for id in set(new_reviewer_ids)]
+ new_reviewers.extend(
+ [
+ reviewer
+ for reviewer in self.reviewers
+ if reviewer["id"] in new_reviewer_ids
+ ]
+ )
+ self.reviewers = new_reviewers
+
_managers = (
("approvals", "ProjectMergeRequestApprovalManager"),
("approval_rules", "ProjectMergeRequestApprovalRuleManager"),
@@ -373,6 +389,7 @@ class ProjectMergeRequestManager(CRUDMixin, RESTManager):
"remove_source_branch",
"allow_maintainer_to_push",
"squash",
+ "reviewer_ids",
),
)
_update_attrs = RequiredOptional(
@@ -388,6 +405,7 @@ class ProjectMergeRequestManager(CRUDMixin, RESTManager):
"discussion_locked",
"allow_maintainer_to_push",
"squash",
+ "reviewer_ids",
),
)
_list_filters = (