From fb36c592ec15ac2420cc96d4b341e89c6c85df93 Mon Sep 17 00:00:00 2001 From: Nathan Brophy <39066917+nathanbrophy@users.noreply.github.com> Date: Wed, 8 Oct 2025 09:28:45 -0500 Subject: [PATCH] Update gitlab.py --- libs/shared/shared/torngit/gitlab.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/libs/shared/shared/torngit/gitlab.py b/libs/shared/shared/torngit/gitlab.py index 763bc5da0e..f2d9a3311f 100644 --- a/libs/shared/shared/torngit/gitlab.py +++ b/libs/shared/shared/torngit/gitlab.py @@ -308,7 +308,7 @@ "enterprise_counter": GITLAB_E_API_CALL_COUNTER.labels( endpoint="list_repos_get_user_and_groups" ), - "url_template": Template("/groups?per_page=100"), + "url_template": Template("/groups?per_page=100&page=${page}"), }, "list_repos_get_owned_projects": { "counter": GITLAB_API_CALL_COUNTER.labels( @@ -722,6 +722,7 @@ async def list_repos(self, username=None, token=None): user_url = self.count_and_get_url_template("list_repos_get_user").substitute() user = await self.api("get", user_url, token=token) user["is_user"] = True + groups = [] if username: if username.lower() == user["username"].lower(): # just me @@ -734,10 +735,16 @@ async def list_repos(self, username=None, token=None): groups = [(await self.api("get", groups_url, token=token))] else: # user and all groups - url = self.count_and_get_url_template( - "list_repos_get_user_and_groups" - ).substitute() - groups = await self.api("get", url, token=token) + page = 0 + while True: + page += 1 + url = self.count_and_get_url_template( + "list_repos_get_user_and_groups" + ).substitute(page=page) + groups_paged = await self.api("get", url, token=token) + groups += groups_paged + if len(groups) < 100: + break groups.append(user) data = []