aboutsummaryrefslogtreecommitdiffstats
path: root/gitlab2todosrht.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab2todosrht.py')
-rwxr-xr-xgitlab2todosrht.py47
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)