summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2020-11-16 06:27:58 +0100
committerGiampaolo Rodola <g.rodola@gmail.com>2020-11-16 06:27:58 +0100
commitd3cbd32b073d4b4a493605dc3963aeec9aa1e63d (patch)
tree091ae88fd23f1de9578ace1073b19887f054024a
parent1e61815ad5d86b3055b64e0ca94cee3f404812ee (diff)
downloadpsutil-d3cbd32b073d4b4a493605dc3963aeec9aa1e63d.tar.gz
print progress
-rwxr-xr-xscripts/internal/github_issue_labeler.py29
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)