Description of the problem, including code/CLI snippet
group.members.get(userid) only seems to be working if that userid is within first 20 hits.
Run this on any group with more than 20 members:
group = gl.groups.get('some-group')
# iterate over the exhaustive list of members as a generator
for member in group.members.list(as_list=False):
# so this call should never fail; but it does
group.members.get(member.id)
Expected Behavior
Ultimately it should call https://docs.gitlab.com/ce/api/members.html#get-a-member-of-a-group-or-project with the exact group id and user id. This would be most efficient.
Alternatively it could call .list() in such a way that it is able to iterate over all results. For example .list(as_list=False) to force a generator to be returned or .list(all=True) to force the exhaustive list to be returned. But again, this is bad if there is a more efficient API to call as linked to above.
Actual Behavior
It ends up calling GetFromListMixin which ends up calling http_list with no arguments which just returns 20 items. It then compares those id's to the requested one.
Specifications
- python-gitlab version: 1.3.0
- API version you are using (v3/v4): 4
Description of the problem, including code/CLI snippet
group.members.get(userid)only seems to be working if that userid is within first 20 hits.Run this on any group with more than 20 members:
Expected Behavior
Ultimately it should call
https://docs.gitlab.com/ce/api/members.html#get-a-member-of-a-group-or-projectwith the exact group id and user id. This would be most efficient.Alternatively it could call
.list()in such a way that it is able to iterate over all results. For example.list(as_list=False)to force a generator to be returned or.list(all=True)to force the exhaustive list to be returned. But again, this is bad if there is a more efficient API to call as linked to above.Actual Behavior
It ends up calling
GetFromListMixinwhich ends up callinghttp_listwith no arguments which just returns 20 items. It then compares those id's to the requested one.Specifications