[sysadmin-bin: 2/5] mail: add gitlab modules to topics list



commit 8a6a8fa15b601595fc080f5b3b7c781b241eb939
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Fri Feb 9 16:51:19 2018 +0200

    mail: add gitlab modules to topics list

 mail/set-topics-svn-commits-list | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)
---
diff --git a/mail/set-topics-svn-commits-list b/mail/set-topics-svn-commits-list
index 34b405b..b98f31b 100755
--- a/mail/set-topics-svn-commits-list
+++ b/mail/set-topics-svn-commits-list
@@ -5,6 +5,7 @@ import re
 import time
 import getopt
 import urllib
+import json
 from types import TupleType
 
 # hack
@@ -17,6 +18,30 @@ from Mailman import Utils
 from Mailman import Errors
 from Mailman import i18n
 
+def get_gitlab_gnome_org_modules():
+    modules = []
+    api_url = 'https://gitlab.gnome.org/api/v4/projects'
+
+    f = urllib.urlopen(api_url + "?per_page=100")
+    if f.headers.gettype() != 'application/json' or f.headers.status != "":
+        sys.exit(1)
+
+    pages = int(f.headers['X-Total-Pages'])
+    f.close()
+
+    for page in range(pages):
+        f = urllib.urlopen(api_url + "?per_page=100&simple=true&order_by=name&sort=asc&page=" + str(page))
+        if f.headers.gettype() != 'application/json' or f.headers.status != "":
+            sys.exit(1)
+
+        projects = json.loads(f.read())
+        f.close()
+
+        for project in projects:
+            modules.append(project['path'])
+
+    return list(set(modules))
+
 def get_git_gnome_org_modules():
     f = urllib.urlopen("http://git.gnome.org/repositories.txt";)
 
@@ -30,7 +55,7 @@ def get_git_gnome_org_modules():
     modules = modules.strip()
     return modules.split("\n")
 
-modules = get_git_gnome_org_modules()
+modules = get_gitlab_gnome_org_modules() + get_git_gnome_org_modules()
 modules.sort()
 
 # Prepare topics variable


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]