From 676d1f6565617a28ee84eae20e945f23aaf3d86f Mon Sep 17 00:00:00 2001 From: Spencer Young Date: Tue, 13 Apr 2021 18:16:32 -0700 Subject: [PATCH 1/2] feat(api): add support for creating/editing reviewers in project merge requests --- gitlab/v4/objects/merge_requests.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gitlab/v4/objects/merge_requests.py b/gitlab/v4/objects/merge_requests.py index dd118d0db..4ca320b0a 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 = ( From 3d985ee8cdd5d27585678f8fbb3eb549818a78eb Mon Sep 17 00:00:00 2001 From: Spencer Phillip Young Date: Wed, 16 Jun 2021 12:43:14 -0700 Subject: [PATCH 2/2] feat(api): remove responsibility for API inconsistencies for MR reviewers --- gitlab/v4/objects/merge_requests.py | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/gitlab/v4/objects/merge_requests.py b/gitlab/v4/objects/merge_requests.py index 4ca320b0a..8bbd7870c 100644 --- a/gitlab/v4/objects/merge_requests.py +++ b/gitlab/v4/objects/merge_requests.py @@ -138,22 +138,6 @@ 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"),