From aeb29a9ebce88a8d4f9b156f50386c2e0e8dfc76 Mon Sep 17 00:00:00 2001 From: Kamil Winczek Date: Thu, 3 Oct 2013 15:51:18 +0100 Subject: [PATCH 1/3] Add ablity to retrieve repositores owned by organization. --- github-backup.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/github-backup.py b/github-backup.py index ae95f33..8657663 100755 --- a/github-backup.py +++ b/github-backup.py @@ -30,7 +30,11 @@ def main(): gh = Github(**config) # Get all of the given user's repos - user_repos = gh.repos.list().all() + if args.organization: + user_repos = gh.repos.list_by_org(args.organization).all() + else: + user_repos = gh.repos.list().all() + for repo in user_repos: repo.user = gh.users.get(repo.owner.login) process_repo(repo, args) @@ -50,6 +54,7 @@ def init_parser(): parser.add_argument("-g","--git", help="Pass extra arguments to git", default="", metavar="ARGS") parser.add_argument("-s", "--suffix", help="Add suffix to repository directory names", default="") parser.add_argument("-p", "--password", help="Authenticate with Github API") + parser.add_argument("-o","--organization", help="Backup Organizational repositories") return parser From 3942eb1f938b3fca17635c2f50b2770500a98f41 Mon Sep 17 00:00:00 2001 From: Kamil Winczek Date: Thu, 3 Oct 2013 15:52:27 +0100 Subject: [PATCH 2/3] Add ability to specify prefix for directories. --- github-backup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/github-backup.py b/github-backup.py index 8657663..bbafd51 100755 --- a/github-backup.py +++ b/github-backup.py @@ -54,6 +54,7 @@ def init_parser(): parser.add_argument("-g","--git", help="Pass extra arguments to git", default="", metavar="ARGS") parser.add_argument("-s", "--suffix", help="Add suffix to repository directory names", default="") parser.add_argument("-p", "--password", help="Authenticate with Github API") + parser.add_argument("-P","--prefix", help="Add prefix to repository directory names", default="") parser.add_argument("-o","--organization", help="Backup Organizational repositories") return parser @@ -62,7 +63,7 @@ def process_repo(repo, args): if not args.cron: print("Processing repo: %s"%(repo.full_name)) - dir = "%s/%s"%(args.backupdir, repo.name + args.suffix) + dir = "%s/%s"%(args.backupdir, args.prefix + repo.name + args.suffix) config = "%s/%s"%(dir, "config" if args.mirror else ".git/config") if not os.access(config, os.F_OK): From 5336a70f459dde34700ab3fcd7fdb8ca07a0aa8b Mon Sep 17 00:00:00 2001 From: Kamil Winczek Date: Thu, 3 Oct 2013 15:52:57 +0100 Subject: [PATCH 3/3] Add ability to clone over SSH protocol. --- github-backup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/github-backup.py b/github-backup.py index bbafd51..fe3ea84 100755 --- a/github-backup.py +++ b/github-backup.py @@ -56,6 +56,7 @@ def init_parser(): parser.add_argument("-p", "--password", help="Authenticate with Github API") parser.add_argument("-P","--prefix", help="Add prefix to repository directory names", default="") parser.add_argument("-o","--organization", help="Backup Organizational repositories") + parser.add_argument("-S","--ssh", help="Use SSH protocol", action="store_true") return parser @@ -81,7 +82,7 @@ def clone_repo(repo, dir, args): else: options = args.git - os.system('git clone %s %s %s'%(options, repo.git_url, dir)) + os.system('git clone %s %s %s'%(options, repo.ssh_url if args.ssh else repo.git_url, dir)) def update_repo(repo, dir, args):