diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2020-11-16 06:27:58 +0100 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2020-11-16 06:27:58 +0100 |
commit | d3cbd32b073d4b4a493605dc3963aeec9aa1e63d (patch) | |
tree | 091ae88fd23f1de9578ace1073b19887f054024a | |
parent | 1e61815ad5d86b3055b64e0ca94cee3f404812ee (diff) | |
download | psutil-d3cbd32b073d4b4a493605dc3963aeec9aa1e63d.tar.gz |
print progress
-rwxr-xr-x | scripts/internal/github_issue_labeler.py | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/scripts/internal/github_issue_labeler.py b/scripts/internal/github_issue_labeler.py index fb414106..a612e927 100755 --- a/scripts/internal/github_issue_labeler.py +++ b/scripts/internal/github_issue_labeler.py @@ -99,8 +99,27 @@ def set_labels_from_title(issue): "segmentation fault", "ZeroDivisionError", "SystemError"]) +class Repository: + + def __init__(self, token): + g = Github(token) + self.repo = g.get_repo("%s/%s" % (USER, PROJECT)) + + def _paginate(self, issues): + tot = issues.totalCount + for i, issue in enumerate(issues, 1): + if i % 50 == 0: + print("%s/%s" % (i, tot)) + yield issue + + def get_issues(self, status): + issues = self.repo.get_issues(state=status) + for issue in self._paginate(issues): + yield issue + + def main(): - global TOKEN, DRYRUN + global DRYRUN # parser parser = argparse.ArgumentParser(description='GitHub issue labeler') @@ -116,14 +135,12 @@ def main(): # set globals with open(os.path.expanduser(args.tokenfile)) as f: - TOKEN = f.read().strip() + token = f.read().strip() DRYRUN = args.dryrun # run - g = Github(TOKEN) - repo = g.get_repo("%s/%s" % (USER, PROJECT)) - issues = repo.get_issues(state=args.status) - for issue in issues: + repo = Repository(token) + for issue in repo.get_issues(args.status): set_labels_from_title(issue) |