@@ -1170,30 +1170,11 @@ class GroupMemberManager(CRUDMixin, RESTManager):
11701170 _create_attrs = (("access_level" , "user_id" ), ("expires_at" ,))
11711171 _update_attrs = (("access_level" ,), ("expires_at" ,))
11721172
1173- @cli .register_custom_action ("GroupMemberManager" )
1174- @exc .on_http_error (exc .GitlabListError )
1175- def all (self , ** kwargs ):
1176- """List all the members, included inherited ones.
1177-
1178- Args:
1179- all (bool): If True, return all the items, without pagination
1180- per_page (int): Number of items to retrieve per request
1181- page (int): ID of the page to return (starts with page 1)
1182- as_list (bool): If set to False and no pagination option is
1183- defined, return a generator instead of a list
1184- **kwargs: Extra options to send to the server (e.g. sudo)
11851173
1186- Raises:
1187- GitlabAuthenticationError: If authentication is not correct
1188- GitlabListError: If the list could not be retrieved
1189-
1190- Returns:
1191- RESTObjectList: The list of members
1192- """
1193-
1194- path = "%s/all" % self .path
1195- obj = self .gitlab .http_list (path , ** kwargs )
1196- return [self ._obj_cls (self , item ) for item in obj ]
1174+ class GroupMemberAllManager (RetrieveMixin , RESTManager ):
1175+ _path = "/groups/%(group_id)s/members/all"
1176+ _obj_cls = GroupMember
1177+ _from_parent_attrs = {"group_id" : "id" }
11971178
11981179
11991180class GroupMergeRequest (RESTObject ):
@@ -1394,6 +1375,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject):
13941375 ("issues" , "GroupIssueManager" ),
13951376 ("labels" , "GroupLabelManager" ),
13961377 ("members" , "GroupMemberManager" ),
1378+ ("members_all" , "GroupMemberAllManager" ),
13971379 ("mergerequests" , "GroupMergeRequestManager" ),
13981380 ("milestones" , "GroupMilestoneManager" ),
13991381 ("notificationsettings" , "GroupNotificationSettingsManager" ),
@@ -2838,30 +2820,11 @@ class ProjectMemberManager(CRUDMixin, RESTManager):
28382820 _create_attrs = (("access_level" , "user_id" ), ("expires_at" ,))
28392821 _update_attrs = (("access_level" ,), ("expires_at" ,))
28402822
2841- @cli .register_custom_action ("ProjectMemberManager" )
2842- @exc .on_http_error (exc .GitlabListError )
2843- def all (self , ** kwargs ):
2844- """List all the members, included inherited ones.
2845-
2846- Args:
2847- all (bool): If True, return all the items, without pagination
2848- per_page (int): Number of items to retrieve per request
2849- page (int): ID of the page to return (starts with page 1)
2850- as_list (bool): If set to False and no pagination option is
2851- defined, return a generator instead of a list
2852- **kwargs: Extra options to send to the server (e.g. sudo)
28532823
2854- Raises:
2855- GitlabAuthenticationError: If authentication is not correct
2856- GitlabListError: If the list could not be retrieved
2857-
2858- Returns:
2859- RESTObjectList: The list of members
2860- """
2861-
2862- path = "%s/all" % self .path
2863- obj = self .gitlab .http_list (path , ** kwargs )
2864- return [self ._obj_cls (self , item ) for item in obj ]
2824+ class ProjectMemberAllManager (RetrieveMixin , RESTManager ):
2825+ _path = "/projects/%(project_id)s/members/all"
2826+ _obj_cls = ProjectMember
2827+ _from_parent_attrs = {"project_id" : "id" }
28652828
28662829
28672830class ProjectNote (RESTObject ):
@@ -4595,6 +4558,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject):
45954558 ("issues" , "ProjectIssueManager" ),
45964559 ("labels" , "ProjectLabelManager" ),
45974560 ("members" , "ProjectMemberManager" ),
4561+ ("members_all" , "ProjectMemberAllManager" ),
45984562 ("mergerequests" , "ProjectMergeRequestManager" ),
45994563 ("milestones" , "ProjectMilestoneManager" ),
46004564 ("notes" , "ProjectNoteManager" ),
0 commit comments