From 6a4f332f6fc1337ba6da4ae19a6f55fc50426d2e Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Tue, 14 Dec 2021 19:45:30 +0100 Subject: [PATCH] Make contributions skripts handle more than 100 issues/merge requests --- scripts/get-contributions-stats.py | 40 ++++++++++++++++++------------ 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/scripts/get-contributions-stats.py b/scripts/get-contributions-stats.py index 7e24bf36b..6ac65ca76 100644 --- a/scripts/get-contributions-stats.py +++ b/scripts/get-contributions-stats.py @@ -10,28 +10,36 @@ WEBLATE_COMPONENT_ID = "funkwhale/front" def get_issues(next_release): url = GITLAB_URL + "/api/v4/issues" - # TODO assumes we have less than 100 issues per Milestone - response = requests.get( - url, - params={"per_page": 100, "milestone": next_release, "scope": "all"}, - headers={"PRIVATE-TOKEN": os.environ["PRIVATE_TOKEN"]}, - ) - response.raise_for_status() + while url: + response = requests.get( + url, + params={"per_page": 20, "milestone": next_release, "scope": "all"}, + headers={"PRIVATE-TOKEN": os.environ["PRIVATE_TOKEN"]}, + ) + response.raise_for_status() + yield from response.json() - return response.json() + if "next" in response.links: + url = response.links["next"]["url"] + else: + url = None def get_merge_requests(next_release): url = GITLAB_URL + "/api/v4/merge_requests" - # TODO assumes we have less than 100 issues per Milestone - response = requests.get( - url, - params={"per_page": 100, "milestone": next_release, "scope": "all"}, - headers={"PRIVATE-TOKEN": os.environ["PRIVATE_TOKEN"]}, - ) - response.raise_for_status() + while url: + response = requests.get( + url, + params={"per_page": 20, "milestone": next_release, "scope": "all"}, + headers={"PRIVATE-TOKEN": os.environ["PRIVATE_TOKEN"]}, + ) + response.raise_for_status() + yield from response.json() - return response.json() + if "next" in response.links: + url = response.links["next"]["url"] + else: + url = None def get_participants(project_id, issue_iid, object_type="issues"):