summaryrefslogtreecommitdiffstats
path: root/extra/make-changelog.py
blob: c66b7048a6163142bf87ca9171cba0b1310c8f43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/python3

import sys
from collections import defaultdict
from email.utils import formatdate
from textwrap import wrap
from typing import Dict, List

import git

repo = git.Repo(".")
changelog = defaultdict(list)  # type: Dict[str, List[str]]

if len(sys.argv) != 2:
    print("Usage: %s SINCE-TAG" % __file__, file=sys.stderr)
    sys.exit(2)

for id in repo.iter_commits("%s..HEAD" % sys.argv[1]):
    commit = repo.commit(id)
    if not commit.summary.startswith("Merge pull request "):
        changelog[commit.author.name].append(commit.summary)

print("bash-completion (X.Y)")
print("")

for author in sorted(changelog.keys()):
    print("  [ %s ]" % author)
    for log in changelog[author]:
        print(
            "\n".join(
                wrap(log, initial_indent="  * ", subsequent_indent="    ")
            )
        )
    print("")

print(
    " -- Ville Skyttä <ville.skytta@iki.fi>  %s" % formatdate(localtime=True)
)