|
15 | 15 | # in a GITHUB_TOKEN environment variable.
|
16 | 16 | #
|
17 | 17 | # CHANGELOG:
|
| 18 | +# |
| 19 | +# * 2015-07-07 Jason Antman <[email protected]> |
| 20 | +# - use argparse, add csv output option |
| 21 | +# |
| 22 | +# * 2014-02-14 Jason Antman <[email protected]> |
18 | 23 | # - initial script
|
19 | 24 | #
|
20 | 25 |
|
21 | 26 | from github import Github
|
22 | 27 | import os
|
23 | 28 | import sys
|
| 29 | +import argparse |
24 | 30 |
|
25 |
| -if len(sys.argv) < 2: |
26 |
| - sys.stderr.write("USAGE: github_org_repos.py <orgname>") |
27 |
| - sys.exit(1) |
28 |
| - |
29 |
| -orgname = sys.argv[1] |
| 31 | +parser = argparse.ArgumentParser() |
| 32 | +parser.add_argument('--csv', dest='csv', action='store_true', default=False, |
| 33 | + help='output as CSV') |
| 34 | +parser.add_argument('orgname', type=str, help='github org name') |
| 35 | +args = parser.parse_args() |
30 | 36 |
|
31 | 37 | TOKEN = None
|
32 | 38 | try:
|
|
46 | 52 |
|
47 | 53 | g = Github(login_or_token=TOKEN)
|
48 | 54 |
|
49 |
| -for repo in g.get_organization(orgname).get_repos(): |
50 |
| - f = " fork of %s/%s" % (repo.parent.owner.name, repo.parent.name) if repo.fork else '' |
51 |
| - p = 'private' if repo.private else 'public' |
52 |
| - fc = "; %d forks" % (repo.forks_count) if (repo.forks_count > 0) else '' |
53 |
| - print("%s (%s%s%s) %s" % (repo.name, p, f, fc, repo.html_url)) |
| 55 | +if args.csv: |
| 56 | + print("repo_name,private_or_public,fork_of,forks,url") |
| 57 | + |
| 58 | +for repo in g.get_organization(args.orgname).get_repos(): |
| 59 | + p = 'private'if repo.private else 'public' |
| 60 | + fork_of = '' |
| 61 | + if repo.fork: |
| 62 | + fork_of = '%s/%s' % (repo.parent.owner.name, repo.parent.name) |
| 63 | + if args.csv: |
| 64 | + print("{name},{p},{fork_of},{forks},{url}".format( |
| 65 | + name=repo.name, |
| 66 | + p=p, |
| 67 | + fork_of=fork_of, |
| 68 | + forks=repo.forks_count, |
| 69 | + url=repo.html_url |
| 70 | + )) |
| 71 | + else: |
| 72 | + f = " fork of %s" % fork_of if repo.fork else '' |
| 73 | + fc = "; %d forks" % (repo.forks_count) if (repo.forks_count > 0) else '' |
| 74 | + print("%s (%s%s%s) %s" % (repo.name, p, f, fc, repo.html_url)) |
0 commit comments