From 9e54b8ee32089c59d3185acbaa4b72e01c80f4a6 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Sun, 5 May 2024 22:04:07 +0200 Subject: [PATCH] fix(clone_packages): handling the pagination to get the repo list --- tools/packages_repo_clone/clone_packages.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tools/packages_repo_clone/clone_packages.py b/tools/packages_repo_clone/clone_packages.py index efe5612..6b650c5 100644 --- a/tools/packages_repo_clone/clone_packages.py +++ b/tools/packages_repo_clone/clone_packages.py @@ -31,13 +31,21 @@ def generate_mirror_list(): existing_clones = [] - data = requests.get( - "https://git.yunohost.org/api/v1/repos/search?topic=false&includeDesc=false&priority_owner_id=17&mode=mirror", - timeout=60, - ).json()["data"] + page = 1 + while True: + data = requests.get( + f"https://git.yunohost.org/api/v1/repos/search?topic=false&includeDesc=false&priority_owner_id=17&mode=mirror&page={page}&limit=100", + timeout=60, + ).json()["data"] - for repo in data: - existing_clones.append(repo["name"]) + # once the data list is empty the whole available pages are consumed + if not data: + break + + for repo in data: + existing_clones.append(repo["name"]) + + page += 1 return existing_clones