From 7a56e5afa61b21d657547645c507f8c59e983db7 Mon Sep 17 00:00:00 2001 From: bonniek Date: Jun 12 2014 00:03:01 +0000 Subject: Initial commit of script to get git repolist from git.centos.org. --- 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="", + help='''project path (default 'all', could be 'rpms', 'core-sig'...)''', + default='rpms') + + parser.add_option('-u', '--url', metavar="", + 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()