From 21f14e5f1b8095fa64ee19b6fedbfe14dc1c01d4 Mon Sep 17 00:00:00 2001 From: Kentaro Wada Date: Sat, 22 Oct 2016 04:10:37 +0900 Subject: [PATCH] List jsk Github repos Depends on https://github.com/ros/rosdistro/pull/13011 --- jsk_tools/package.xml | 2 +- jsk_tools/src/git_commit_alias.py | 38 ++++++++++++++------------- jsk_tools/src/jsk_tools/__init__.py | 1 + jsk_tools/src/jsk_tools/github_lib.py | 15 +++++++++++ jsk_tools/src/list_repos.py | 16 +++++++++++ 5 files changed, 53 insertions(+), 19 deletions(-) create mode 100644 jsk_tools/src/jsk_tools/github_lib.py create mode 100755 jsk_tools/src/list_repos.py diff --git a/jsk_tools/package.xml b/jsk_tools/package.xml index cb8fc15a7..b605099ce 100644 --- a/jsk_tools/package.xml +++ b/jsk_tools/package.xml @@ -19,7 +19,7 @@ rosgraph_msgs python-percol python-colorama - python-pygithub3 + python-github-pip python-slacker-cli python-texttable rosgraph_msgs diff --git a/jsk_tools/src/git_commit_alias.py b/jsk_tools/src/git_commit_alias.py index 0a8fa4998..4bd2989eb 100755 --- a/jsk_tools/src/git_commit_alias.py +++ b/jsk_tools/src/git_commit_alias.py @@ -1,32 +1,34 @@ #!/usr/bin/env python -# Generate commit aliases for jsk-ros-pkg developers +"""Generate commit aliases for jsk-ros-pkg developers""" + import subprocess -from pygithub3 import Github +from jsk_tools.github_lib import login_github + -from getpass import getpass -user = raw_input('GitHub User name: ') -pw = getpass('Password: ') -gh = Github(login=user, password=pw) -result = gh.orgs.members.list('jsk-ros-pkg') -for page in result: - for member in page: - user = gh.users.get(member.login) +def main(): + gh = login_github() + + org = gh.get_organization('jsk-ros-pkg') + for user in org.get_members(): try: - name = user.name - alias_name = name + alias_name = name = user.name email = user.email if not email or email == "": raise Exception("No email specified") - if len(alias_name.split(" ")) > 0: + if len(name.split(" ")) > 0: alias_name = name.split(" ")[-1] alias_command = "commit-%s" % alias_name.lower() alias = "jsk-commit --author='%s <%s>'" % (name, email) - subprocess.check_call(["git", "config", "--global", - "alias.%s" % alias_command, - alias]) + subprocess.check_call( + ["git", "config", "--global", + "alias.%s" % alias_command, alias] + ) print "Added %s" % (alias_command) - except: - print "Failed to generate alias for %s" % (member.login) + except Exception as e: + print("Failed to generate alias for %s: %s" % (user.name, e)) + +if __name__ == '__main__': + main() diff --git a/jsk_tools/src/jsk_tools/__init__.py b/jsk_tools/src/jsk_tools/__init__.py index fb1eb6144..fbf4cf394 100644 --- a/jsk_tools/src/jsk_tools/__init__.py +++ b/jsk_tools/src/jsk_tools/__init__.py @@ -5,3 +5,4 @@ from . import video_directive from . import sanity_lib from . import cltool +from . import github_lib diff --git a/jsk_tools/src/jsk_tools/github_lib.py b/jsk_tools/src/jsk_tools/github_lib.py new file mode 100644 index 000000000..6a35046b5 --- /dev/null +++ b/jsk_tools/src/jsk_tools/github_lib.py @@ -0,0 +1,15 @@ +import getpass + +import github + + +gh = None + + +def login_github(): + global gh + if gh is None: + username = raw_input('GitHub username: ') + password = getpass.getpass('Password: ') + gh = github.Github(username, password) + return gh diff --git a/jsk_tools/src/list_repos.py b/jsk_tools/src/list_repos.py new file mode 100755 index 000000000..cb36c8a42 --- /dev/null +++ b/jsk_tools/src/list_repos.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +from jsk_tools.github_lib import login_github + + +def main(): + gh = login_github() + + for org_name in ['jsk-ros-pkg', 'start-jsk']: + org = gh.get_organization(org_name) + for repo in org.get_repos(): + print(repo.full_name) + + +if __name__ == '__main__': + main()