Added switch to filter output based on branch, add license string

This commit is contained in:
Pat Riehecky 2014-06-24 04:14:40 -05:00 committed by Johnny Hughes
parent c6c34b1881
commit a6a2bc047e

View file

@ -1,4 +1,11 @@
#!/usr/bin/env python
#
# License: GPLv3
#
# Initial Author: Bonnie King <bonniek@fnal.gov>
# Updates:
# Pat Riehecky <riehecky@fnal.gov>
#
'''Get list of repos from gitblit RPC, to grab CentOS sources'''
import optparse
@ -22,36 +29,45 @@ def read_args():
help='''project path (default 'rpms', could be 'all', 'core-sig'...)''',
default='rpms')
parser.add_option('-b', '--branch', metavar="<branch name>",
help='Only list repos with this branch (default master)',
default = 'master')
parser.add_option('-u', '--url', metavar="<URL>",
help='URL to check (default %s)' % (RPCURL),
default = RPCURL
)
default = RPCURL)
(options, args) = parser.parse_args()
return options
def get_repo_list(url, projectpath):
def get_repo_list(url, branch, projectpath):
'''return a list of repo URLs'''
try:
req = requests.get(url)
except requests.exceptions.RequestException as e:
print e
except requests.exceptions.RequestException as err_msg:
print err_msg
sys.exit(1)
payload = req.text
repos = json.loads(payload)
branchname = 'refs/heads/' + branch
if projectpath != 'all':
for repo in repos.keys():
for repo in repos.keys():
if projectpath != 'all':
if repos[repo]['projectPath'] != projectpath:
del repos[repo]
continue
if branchname not in repos[repo]['availableRefs']:
del repos[repo]
return repos.keys()
def main():
'''Broken out so it can be inherited if someone wants'''
options = read_args()
repos = get_repo_list(url=options.url, projectpath=options.project)
print '\n'.join(repos)
repos = get_repo_list(url=options.url, branch=options.branch, projectpath=options.project)
if repos:
print '\n'.join(repos)
if __name__ == "__main__":
main()