Description
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