Skip to content

Commit 24b28b6

Browse files
fix: members: use new *All objects for *AllManager managers
Change it so that: GroupMemberAllManager uses GroupMemberAll object ProjectMemberAllManager uses ProjectMemberAll object Create GroupMemberAll and ProjectMemberAll objects that do not support any Mixin type methods. Previously we were using GroupMember and ProjectMember which support the `save()` and `delete()` methods but those methods will not work with objects retrieved using the `/members/all/` API calls. `list()` API calls: [1] GET /groups/:id/members/all GET /projects/:id/members/all `get()` API calls: [2] GET /groups/:id/members/all/:user_id GET /projects/:id/members/all/:user_id Closes: #1825 [1] https://docs.gitlab.com/ee/api/members.html#list-all-members-of-a-group-or-project-including-inherited-and-invited-members [2] https://docs.gitlab.com/ee/api/members.html#get-a-member-of-a-group-or-project-including-inherited-and-invited-members [3] commitlint footer change: conventional-changelog/commitlint#2112 (comment)
1 parent 4a000b6 commit 24b28b6

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

gitlab/v4/objects/members.py

+14-6
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,19 @@ class GroupBillableMemberMembershipManager(ListMixin, RESTManager):
7070
_from_parent_attrs = {"group_id": "group_id", "user_id": "id"}
7171

7272

73+
class GroupMemberAll(RESTObject):
74+
_short_print_attr = "username"
75+
76+
7377
class GroupMemberAllManager(RetrieveMixin, RESTManager):
7478
_path = "/groups/{group_id}/members/all"
75-
_obj_cls = GroupMember
79+
_obj_cls = GroupMemberAll
7680
_from_parent_attrs = {"group_id": "id"}
7781

7882
def get(
7983
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
80-
) -> GroupMember:
81-
return cast(GroupMember, super().get(id=id, lazy=lazy, **kwargs))
84+
) -> GroupMemberAll:
85+
return cast(GroupMemberAll, super().get(id=id, lazy=lazy, **kwargs))
8286

8387

8488
class ProjectMember(SaveMixin, ObjectDeleteMixin, RESTObject):
@@ -103,12 +107,16 @@ def get(
103107
return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
104108

105109

110+
class ProjectMemberAll(RESTObject):
111+
_short_print_attr = "username"
112+
113+
106114
class ProjectMemberAllManager(RetrieveMixin, RESTManager):
107115
_path = "/projects/{project_id}/members/all"
108-
_obj_cls = ProjectMember
116+
_obj_cls = ProjectMemberAll
109117
_from_parent_attrs = {"project_id": "id"}
110118

111119
def get(
112120
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
113-
) -> ProjectMember:
114-
return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
121+
) -> ProjectMemberAll:
122+
return cast(ProjectMemberAll, super().get(id=id, lazy=lazy, **kwargs))

0 commit comments

Comments
 (0)