diff --git a/scripts/proposals.py b/scripts/proposals.py index 4ba4d0ee..171db069 100644 --- a/scripts/proposals.py +++ b/scripts/proposals.py @@ -10,67 +10,84 @@ import re from datetime import datetime from m2r import convert as m2r +pagecount = 1 + def getpage(url, page): resp = requests.get(url + str(page)) - json.extend(resp.json()) for link in resp.links.values(): if link['rel'] == 'last': - return re.search('page=(.+?)', link['url']).group(1) + pagecount = re.search('page=(.+?)', link['url']).group(1) + + return resp.json() + +def getbylabel(label): + pagecount = 1 + json = list() + urlbase = 'https://api.github.com/repos/matrix-org/matrix-doc/issues?state=open&labels=' + label + '&page=' + print(urlbase) + json.extend(getpage(urlbase, 1)) + for page in range(2, int(pagecount) + 1): + getpage(urlbase, page) + + return json -json = list() -# labels = ['p1', p2] # new status labels: # proposal-ready-for-review,rejected,stalled,merged,spec-pr-in-review,proposal-wip,proposal-in-review,spec-pr-ready-for-review,proposal-passed-review -urlbase = 'https://api.github.com/repos/matrix-org/matrix-doc/issues?labels=p1,p2,p3,p4,p5&state=open&page=' -pagecount = getpage('https://api.github.com/repos/matrix-org/matrix-doc/issues?labels=spec-omission&state=open&page=', 1) -for page in range(2, int(pagecount) + 1): - getpage(urlbase, page) +labels = ['p1', 'p2'] +issues = {} +for label in labels: + issues[label] = getbylabel(label) + print(issues) text_file = open("../specification/proposals.rst", "w") -text_file.write("Tables\n------------------\n\n.. list-table::\n :header-rows: 1\n\n") - -text_file.write(" * - ID\n") -text_file.write(" - github username\n") -text_file.write(" - proposal title\n") -text_file.write(" - created_at\n") -text_file.write(" - updated_at\n") -text_file.write(" - maindoc\n") - -#`matrix-doc/issues `_ -for item in json: - maindoc = re.search('Documentation: (.+?)\n', str(item['body'])) - if maindoc is not None: - maindoc = maindoc.group(1) - text_file.write(" * - `" + str(item['number']) + " <" + item['html_url'] + ">`_\n") - text_file.write(" - " + item['user']['login'] + "\n") - text_file.write(" - " + item['title'] + "\n") - text_file.write(" - " + item['created_at'] + "\n") - text_file.write(" - " + item['updated_at'] + "\n") - text_file.write(" - " + str(maindoc) + "\n") +text_file.write("Tables\n------------------\n\n") + + +for label in labels: + text_file.write(label + "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n") + text_file.write(".. list-table::\n :header-rows: 1\n :widths: auto\n\n") + text_file.write(" * - ID\n") + text_file.write(" - github username\n") + text_file.write(" - proposal title\n") + text_file.write(" - created_at\n") + text_file.write(" - updated_at\n") + text_file.write(" - maindoc\n") + + for item in issues[label]: + maindoc = re.search('Documentation: (.+?)\n', str(item['body'])) + if maindoc is not None: + maindoc = maindoc.group(1) + text_file.write(" * - `" + str(item['number']) + " <" + item['html_url'] + ">`_\n") + text_file.write(" - " + item['user']['login'] + "\n") + text_file.write(" - " + item['title'] + "\n") + text_file.write(" - " + item['created_at'] + "\n") + text_file.write(" - " + item['updated_at'] + "\n") + text_file.write(" - " + str(maindoc) + "\n") + text_file.write("\n\n\n") text_file.write("\n") -text_file.write("The Proposals List\n------------------\n") -# text_file.write(json[0]['user']['login']) -for item in json: - # write a header - prop_header = item['title'] + " (" + str(item['number']) + ")" - text_file.write(prop_header + "\n") - text_file.write("~" * len(prop_header)) - text_file.write("\n\n") +# text_file.write("The Proposals List\n------------------\n") +# # text_file.write(json[0]['user']['login']) +# for item in json: +# # write a header +# prop_header = item['title'] + " (" + str(item['number']) + ")" +# text_file.write(prop_header + "\n") +# text_file.write("~" * len(prop_header)) +# text_file.write("\n\n") - # write some metadata - text_file.write(item['created_at'] + "\n") - text_file.write(item['updated_at'] + "\n") - # created = datetime.strptime(item['created_at'], "%Y-%m-%dT%XZ") +# # write some metadata +# text_file.write(item['created_at'] + "\n") +# text_file.write(item['updated_at'] + "\n") +# # created = datetime.strptime(item['created_at'], "%Y-%m-%dT%XZ") - # write body text - body = m2r(str(item['body'])) - text_file.write(body + "\n\n\n") +# # write body text +# body = m2r(str(item['body'])) +# text_file.write(body + "\n\n\n") text_file.close()