Skip to content

Commit

Permalink
allow authentication with github token
Browse files Browse the repository at this point in the history
  • Loading branch information
cgroschupp committed Jul 24, 2020
1 parent 30128f0 commit 9a362f2
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions ghcloneall.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def get_github_list(url, batch_size=100, progress_callback=None, session=None):
while 'next' in links:
if progress_callback:
progress_callback(len(res))
more, links = get_json_and_links(links['next']['url'])
more, links = get_json_and_links(links['next']['url'], session)
res += more
return res

Expand Down Expand Up @@ -382,7 +382,8 @@ def from_gist(cls, gist):

class RepoWrangler(object):

def __init__(self, dry_run=False, verbose=0, progress=None, quiet=False):
def __init__(self, dry_run=False, verbose=0, progress=None, quiet=False,
token=None):
self.n_repos = 0
self.n_updated = 0
self.n_new = 0
Expand All @@ -393,13 +394,18 @@ def __init__(self, dry_run=False, verbose=0, progress=None, quiet=False):
self.progress = progress if progress else Progress()
self.lock = threading.Lock()

self.session = requests.Session()
if token:
self.session.auth = ('', token)

def get_github_list(self, list_url, message):
self.progress.status(message)

def progress_callback(n):
self.progress.status("{} ({})".format(message, n))

return get_github_list(list_url, progress_callback=progress_callback)
return get_github_list(list_url, progress_callback=progress_callback,
session=self.session)

def list_gists(self, user, pattern=None):
list_url = 'https://api.github.com/users/{}/gists'.format(user)
Expand Down Expand Up @@ -776,6 +782,9 @@ def _main():
parser.add_argument(
'--user',
help='specify the GitHub user')
parser.add_argument(
'--github-token',
help='specify the GitHub token')
parser.add_argument(
'--gists', action='store_true', default=None,
help="clone user's gists")
Expand Down Expand Up @@ -912,7 +921,8 @@ def _main():

with Progress() as progress:
wrangler = RepoWrangler(dry_run=args.dry_run, verbose=args.verbose,
progress=progress, quiet=args.quiet)
progress=progress, quiet=args.quiet,
token=args.github_token)
if args.gists:
repos = wrangler.list_gists(
user=args.user,
Expand Down

0 comments on commit 9a362f2

Please sign in to comment.