aboutsummaryrefslogtreecommitdiffstats
path: root/extras/scripts/list_api_changes.py
blob: ac8cf47781023b514f8d30c792db9fa40263ce5c (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
#!/usr/bin/env python3
from __future__ import print_function
import fnmatch
import os
import subprocess

starttag = 'v19.08-rc0'
endtag = 'HEAD'
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 = b" ".join(parts[1:]).decode().replace("|", r"\|")
                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)