summaryrefslogtreecommitdiffstats
path: root/extras/scripts/list_api_changes.py
blob: e56da0ace197961b68c8834afca67e491df40cdf (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
#!/usr/bin/env python
import os, fnmatch, subprocess

starttag = 'v18.10-rc0'
endtag = 'v18.10'
emit_md = True
apifiles = []

for root, dirnames, filenames in os.walk('.'):
    for filename in fnmatch.filter(filenames, '*.api'):
        apifiles.append(os.path.join(root, filename))

for f in apifiles:
    commits = subprocess.check_output(['git', 'log',
                                       '--oneline', starttag + '..' + endtag,
                                       f])
    if commits:
        if f[0:2] == './':
            f = f[2:]
        if emit_md:
            print "| @c %s ||" % f
            print "| ------- | ------- |"
            for line in commits.splitlines():
                parts = line.strip().split()
                commit = parts[0]
                message = " ".join(parts[1:]).replace("|", "\|")
                print "| [%s](https://gerrit.fd.io/r/gitweb?" \
                        "p=vpp.git;a=commit;h=%s) | %s |" % (
                                commit, commit, message)
            print
        else:
            print f
            print commits