import argparse import json import urllib.request import re def main() -> None: parser = argparse.ArgumentParser( description="List undocumented PRs" ) parser.add_argument("-m", "--milestone", type=int, required=True) args = parser.parse_args() milestone = args.milestone with urllib.request.urlopen("https://egit.irs.uni-stuttgart.de/api/v1/repos/fsfw/fsfw/milestones/" + str(milestone)) as milestone_json: milestone_title = json.load(milestone_json)['title'] match = re.search("(v[0-9]+\.[0-9]+\.[0-9]+)", milestone_title) if not match: print("invalid Milestone name") exit(1) version = match.group(0) print("detected Version " + version) milestone_prs = [] page = 1 last_count = 1; while last_count != 0: with urllib.request.urlopen("https://egit.irs.uni-stuttgart.de/api/v1/repos/fsfw/fsfw/pulls?state=closed&milestone=" + str(milestone) + "&limit=100&page=" + str(page)) as pull_requests_json: pull_requests = json.load(pull_requests_json) for pr in pull_requests: milestone_prs.append(pr['number']) page += 1 last_count = len(pull_requests) print("Found " + str(len(milestone_prs)) + " closed PRs in Milestone") main()