From 974d7952df3ccb14ffa3697d73586e28ed898dd5 Mon Sep 17 00:00:00 2001 From: Will Newton Date: Thu, 26 May 2016 13:18:35 +0100 Subject: [PATCH 1/2] get-pdfs-of-issues.py: Allow filtering issues by label and milestone --- get-pdfs-of-issues.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/get-pdfs-of-issues.py b/get-pdfs-of-issues.py index 93de548..747ace7 100755 --- a/get-pdfs-of-issues.py +++ b/get-pdfs-of-issues.py @@ -17,6 +17,7 @@ import subprocess import sys import tempfile +import urllib from github import standard_headers, get_issues @@ -91,7 +92,10 @@ def replace_images(md): return re.sub(r'\!\[(.*?)\]\((.*?)\)', replace_image, md) -def main(repo): +def main(repo, milestone, label): + milestone_url = "" + if milestone: + milestone_url = 'https://github.com/{0}/milestones/{1}'.format(repo, urllib.quote(milestone)) for number, title, body, issue in get_issues(repo): @@ -106,6 +110,19 @@ def main(repo): if 'pull_request' in issue and issue['pull_request']['html_url']: continue + if milestone_url: + if not issue['milestone'] or issue['milestone']['html_url'] != milestone_url: + continue + + if label: + found = False + for assigned_label in issue['labels']: + if assigned_label['name'] == label: + found = True + break + if not found: + continue + print "Doing issue", number, title with open(md_filename, 'w') as f: @@ -148,6 +165,12 @@ def main(repo): parser.add_option("-t", "--test", action="store_true", dest="test", default=False, help="Run doctests") +parser.add_option("-m", "--milestone", + metavar="MILESTONE", dest="milestone", default="", + help="Only issues with this milestone") +parser.add_option("-l", "--label", + metavar="LABEL", dest="label", default="", + help="Only issues with this label") (options, args) = parser.parse_args() @@ -157,4 +180,4 @@ def main(repo): if len(args) != 1: parser.print_help() else: - main(args[0]) + main(args[0], options.milestone, options.label) From 0aa755bdba317efa21b871b67897ebf2550aa189 Mon Sep 17 00:00:00 2001 From: Will Newton Date: Thu, 26 May 2016 13:22:47 +0100 Subject: [PATCH 2/2] get-pdfs-of-issues.py: Allow excluding comments --- get-pdfs-of-issues.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/get-pdfs-of-issues.py b/get-pdfs-of-issues.py index 747ace7..e2da7dd 100755 --- a/get-pdfs-of-issues.py +++ b/get-pdfs-of-issues.py @@ -92,7 +92,7 @@ def replace_images(md): return re.sub(r'\!\[(.*?)\]\((.*?)\)', replace_image, md) -def main(repo, milestone, label): +def main(repo, milestone, label, no_comments): milestone_url = "" if milestone: milestone_url = 'https://github.com/{0}/milestones/{1}'.format(repo, urllib.quote(milestone)) @@ -134,7 +134,7 @@ def main(repo, milestone, label): body = body.encode('utf-8') f.write(body) f.write("\n\n") - if issue['comments'] > 0: + if not no_comments and issue['comments'] > 0: comments_request = requests.get(issue['comments_url'], headers=standard_headers) for comment in comments_request.json(): @@ -171,6 +171,9 @@ def main(repo, milestone, label): parser.add_option("-l", "--label", metavar="LABEL", dest="label", default="", help="Only issues with this label") +parser.add_option("-n", "--no-comments", + action="store_true", dest="no_comments", default=False, + help="Exclude comments from output") (options, args) = parser.parse_args() @@ -180,4 +183,4 @@ def main(repo, milestone, label): if len(args) != 1: parser.print_help() else: - main(args[0], options.milestone, options.label) + main(args[0], options.milestone, options.label, options.no_comments)