diff options
author | John L. Villalovos <john@sodarock.com> | 2022-01-11 18:38:32 -0800 |
---|---|---|
committer | John L. Villalovos <john@sodarock.com> | 2022-01-11 18:38:32 -0800 |
commit | 88ac96d59c17eabb9d96f3e7a5907f235563e008 (patch) | |
tree | 0f2b30151575035ebd4c7e830f9239107ceee9cb | |
parent | 4a000b6c41f0a7ef6121c62a4c598edc20973799 (diff) | |
download | gitlab-jlvillal/all_objects.tar.gz |
fix: members: use new *All objects for *AllManager managersjlvillal/all_objects
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
-rw-r--r-- | gitlab/v4/objects/members.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/gitlab/v4/objects/members.py b/gitlab/v4/objects/members.py index 8fa2bb3..32c2ce5 100644 --- a/gitlab/v4/objects/members.py +++ b/gitlab/v4/objects/members.py @@ -70,15 +70,19 @@ class GroupBillableMemberMembershipManager(ListMixin, RESTManager): _from_parent_attrs = {"group_id": "group_id", "user_id": "id"} +class GroupMemberAll(RESTObject): + _short_print_attr = "username" + + class GroupMemberAllManager(RetrieveMixin, RESTManager): _path = "/groups/{group_id}/members/all" - _obj_cls = GroupMember + _obj_cls = GroupMemberAll _from_parent_attrs = {"group_id": "id"} def get( self, id: Union[str, int], lazy: bool = False, **kwargs: Any - ) -> GroupMember: - return cast(GroupMember, super().get(id=id, lazy=lazy, **kwargs)) + ) -> GroupMemberAll: + return cast(GroupMemberAll, super().get(id=id, lazy=lazy, **kwargs)) class ProjectMember(SaveMixin, ObjectDeleteMixin, RESTObject): @@ -103,12 +107,16 @@ class ProjectMemberManager(CRUDMixin, RESTManager): return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs)) +class ProjectMemberAll(RESTObject): + _short_print_attr = "username" + + class ProjectMemberAllManager(RetrieveMixin, RESTManager): _path = "/projects/{project_id}/members/all" - _obj_cls = ProjectMember + _obj_cls = ProjectMemberAll _from_parent_attrs = {"project_id": "id"} def get( self, id: Union[str, int], lazy: bool = False, **kwargs: Any - ) -> ProjectMember: - return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs)) + ) -> ProjectMemberAll: + return cast(ProjectMemberAll, super().get(id=id, lazy=lazy, **kwargs)) |