Blob Blame History Raw
#!/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


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'...)''',

    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'''
        req = requests.get(url)
    except requests.exceptions.RequestException as e:
        print e

    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__":