From 6486edc0a77e91eb379bce962e79b72ba2e6e12b Mon Sep 17 00:00:00 2001 From: Joseph Hale Date: Wed, 09 Jul 2025 18:09:45 +0000 Subject: [PATCH] fix: Add paging to pull all repositories --- gource_org.py | 32 +++++++++++++++++++++++--------- 1 file(s) changed, 23 insertion(s)(+), 9 deletion(s)(-) diff --git a/gource_org.py b/gource_org.py --- a/gource_org.py +++ b/gource_org.py @@ -15,15 +15,29 @@ def list_repositories(organization_name: str) -> list: - response = requests.get( - f"https://api.github.com/orgs/{organization_name}/repos", - headers={ - "Accept": "application/vnd.github+json", - "Authorization": f"Bearer {config['token']}", - "X-GitHub-Api-Version": "2022-11-28", - }, - ) - return json.loads(response.text) + url = f"https://api.github.com/orgs/{organization_name}/repos" + headers = {"Accept": "application/vnd.github+json"} + headers["Authorization"] = f"Bearer {config['token']}" + + all_repos = [] + page = 1 + + while True: + response = requests.get( + url, headers=headers, params={"per_page": 100, "page": page} + ) + if response.status_code != 200: + print(f"Error: {response.status_code}") + break + + repos = response.json() + if not repos: + break + + all_repos.extend(repos) + page += 1 + + return all_repos def clone_repos(repositories: list, dst: Path = Path("./")) -> None: -- tangled.sh