Skip to content

Commit d2742d4

Browse files
committed
list_github_org_repos.py csv output
1 parent 71b375f commit d2742d4

File tree

1 file changed

+31
-10
lines changed

1 file changed

+31
-10
lines changed

list_github_org_repos.py

+31-10
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,24 @@
1515
# in a GITHUB_TOKEN environment variable.
1616
#
1717
# 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]>
1823
# - initial script
1924
#
2025

2126
from github import Github
2227
import os
2328
import sys
29+
import argparse
2430

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()
3036

3137
TOKEN = None
3238
try:
@@ -46,8 +52,23 @@
4652

4753
g = Github(login_or_token=TOKEN)
4854

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

Comments
 (0)