[CentOS-devel] [PATCH] Initial commit of script to get git repolist from git.centos.org.

Wed Jun 11 21:26:23 UTC 2014
bonniek <bonniek at fnal.gov>

---
 centos.git.repolist.py |   57 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 57 insertions(+), 0 deletions(-)
 create mode 100755 centos.git.repolist.py

diff --git a/centos.git.repolist.py b/centos.git.repolist.py
new file mode 100755
index 0000000..35be347
--- /dev/null
+++ b/centos.git.repolist.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+'''Get list of repos from gitblit RPC, to grab CentOS sources'''
+
+import optparse
+import requests
+import simplejson as json
+import sys
+
+RPCURL = "https://git.centos.org/rpc?req=LIST_REPOSITORIES"
+
+def read_args():
+    '''
+        read in the command line args and set things up
+    '''
+
+    desc = '''Get list of git repositories from the GitBlit json RPC
+           '''
+
+    usage = "usage: %prog [options] "
+    parser = optparse.OptionParser(usage=usage, description=desc)
+    parser.add_option('-p', '--project', metavar="<PROJECTS>",
+                      help='''project path (default 'all', could be 'rpms', 'core-sig'...)''',
+                      default='rpms')
+
+    parser.add_option('-u', '--url', metavar="<URL>",
+                      help='URL to check (default %s)' % (RPCURL),
+                      default = RPCURL
+                      )
+
+    (options, args) = parser.parse_args()
+    return options
+
+def get_repo_list(url, projectpath):
+    '''return a list of repo URLs'''
+    try:
+        req = requests.get(url)
+    except requests.exceptions.RequestException as e:
+        print e
+        sys.exit(1)
+
+    payload = req.text
+    repos = json.loads(payload)
+
+    if projectpath != 'all':
+        for repo in repos.keys():
+            if repos[repo]['projectPath'] != projectpath:
+                del repos[repo]
+
+    return repos.keys()
+
+def main():
+    options = read_args()
+    repos = get_repo_list(url=options.url, projectpath=options.project)
+    print '\n'.join(repos)
+    
+if __name__ == "__main__":
+    main()
-- 
1.7.1