added new script, updated readme, updated todo:
This commit is contained in:
parent
14147e3dd0
commit
52cea88b4f
2
TODO.md
2
TODO.md
@ -2,3 +2,5 @@
|
||||
1. Add Travis
|
||||
1. Add support for Python 2.7, 3.5, and 3.6
|
||||
1. Organize docs and folder structure better
|
||||
1. Add all scripts to single CLI for easy running, testing, and searching
|
||||
1. Add License
|
||||
|
@ -32,3 +32,4 @@
|
||||
1. **30_fullcontact.py**: Call the [FullcContact](https://www.fullcontact.com/developer/) API
|
||||
1. **31_youtube_sentiment.py**: Calculate sentiment score from the comments of a Youtube video
|
||||
1. **32_stock_scraper.py**: Get stock prices
|
||||
1. **34_git_all_repos.py**: Clone all repositories from a public user or organization on Github. Usage: `python git_all_repos.py users USER_NAME` or `python git_all_repos.py orgs ORG_NAME`
|
||||
|
42
scripts/34_git_all_repos.py
Normal file
42
scripts/34_git_all_repos.py
Normal file
@ -0,0 +1,42 @@
|
||||
import sys
|
||||
import os
|
||||
import requests
|
||||
|
||||
|
||||
def get_total_repos(group, name):
|
||||
repo_urls = []
|
||||
page = 1
|
||||
while True:
|
||||
url = 'https://api.github.com/{0}/{1}/repos?per_page=100&page={2}'
|
||||
r = requests.get(url.format(group, name, page))
|
||||
if r.status_code == 200:
|
||||
rdata = r.json()
|
||||
for repo in rdata:
|
||||
repo_urls.append(repo['clone_url'])
|
||||
if (len(rdata) >= 100):
|
||||
page += 1
|
||||
else:
|
||||
print('Found {0} repos.'.format(len(repo_urls)))
|
||||
break
|
||||
else:
|
||||
print(r)
|
||||
return False
|
||||
return repo_urls
|
||||
|
||||
|
||||
def clone_repos(all_repos):
|
||||
count = 1
|
||||
print('Cloning...')
|
||||
for repo in all_repos:
|
||||
os.system('Git clone ' + repo)
|
||||
print('Completed repo #{0} of {1}'.format(count, len(all_repos)))
|
||||
count += 1
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) > 2:
|
||||
total = get_total_repos(sys.argv[1], sys.argv[2])
|
||||
if total:
|
||||
clone_repos(total)
|
||||
|
||||
else:
|
||||
print('Usage: python USERS_OR_ORG GITHUB_USER_OR_ORG-NAME')
|
Loading…
Reference in New Issue
Block a user