]>
git.ipfire.org Git - thirdparty/pdns.git/blob - build-scripts/changelog-from-pr.py
8 argp
= argparse
.ArgumentParser()
9 argp
.add_argument('--oneline', action
='store_true',
10 help='Make one-lined changelog entries (for 4.0 and older)')
11 argp
.add_argument('pullrequest', metavar
='PULL_REQUEST', nargs
='+',
12 help='Make changelogs for these Pull Request #\'s')
13 arguments
= argp
.parse_args()
15 ticket_regex
= re
.compile(r
'(?:[Cc]loses|[Ff]ixes)? #(\d+)')
18 for pr
in arguments
.pullrequest
:
22 res
= requests
.get('https://api.github.com/repos/PowerDNS/pdns/pulls/'
25 except (requests
.exceptions
.HTTPError
, ValueError) as e
:
30 out
+= '- `#{pr} <{url}>`__: {title}'.format(
31 pr
=pr
, url
=pr_info
['html_url'], title
=pr_info
['title']
34 out
+= ' .. change::\n' + \
35 ' :tags: XXXXXX\n' + \
36 ' :pullreq: {}\n'.format(pr
)
37 tickets
= re
.findall(ticket_regex
, pr_info
['body'])
39 out
+= ' :tickets: {}\n'.format(', '.join(tickets
))
40 out
+= '\n {}'.format(pr_info
['title'].capitalize())
42 if pr_info
['user']['login'].lower() not in ['ahupowerdns', 'habbie',
43 'pieterlexis', 'rgacogne',
46 user_info
= requests
.get(pr_info
['user']['url']).json()
47 except (requests
.exceptions
.HTTPError
, ValueError) as e
:
50 out
+= ' ({})'.format(user_info
['name'])
53 if not arguments
.oneline
: