diff options
Diffstat (limited to 'gitlab2todosrht.py')
-rwxr-xr-x | gitlab2todosrht.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gitlab2todosrht.py b/gitlab2todosrht.py new file mode 100755 index 0000000..8a90160 --- /dev/null +++ b/gitlab2todosrht.py @@ -0,0 +1,47 @@ +#!/usr/bin/python3 + +import json +import os.path +import pprint +import smtplib +import sys + +if len(sys.argv) < 2: + print(f"sys.argv: {sys.argv}") + sys.exit(1) + +out = {} + +INP = sys.argv[1] +if not os.path.exists(INP): + sys.exit(2) + +with open(INP) as inf: + input = sorted(json.load(inf), key=lambda item: item['iid']) + +for issue in input: + id = issue['iid'] + out[id] = { + 'title': issue['title'], + 'desc': issue['description'], + 'status': issue['state'], + 'comments': [] + } + for note in issue['notes']: + out[id]['comments'].append({ + 'text': note['note'] + }) + +fromaddr="mcepl@cepl.eu" +toaddrs=('~mcepl/json_diff@todo.sr.ht',) + +with smtplib.SMTP('redcrew.org', port=587) as smtp: + smtp.starttls() + smtp.login(fromaddr, "]fJTTIuHF7zunkNd") + for key, iss in out.items(): + msg = ("From: %s\r\nTo: %s\r\n\r\n" + % (fromaddr, ", ".join(toaddrs))) + if iss['desc'] is not None: + msg += iss['desc'] + + smtp.sendmail("mcepl@cepl.eu", "~mcepl/json_diff@todo.sr.ht",msg) |