def get_gists(token, uri): max_pages = 0 if token else 1 conn = Connection(token) pager = Pager(conn, uri, params={}, max_pages=max_pages) for response in pager: for gist in response.parsed: yield gist
def main(): try: opts, args = getopt.gnu_getopt(sys.argv[1:], 'h', ['help', 'input=', 'max-pages=']) except getopt.GetoptError as e: usage(e) data = None max_pages = None for opt, val in opts: if opt in ('-h', '--help'): usage() elif opt == '--input': if val == '-': data = sys.stdin else: with open(val, 'r') as fob: data = json.load(fob) elif opt == '--max-pages': max_pages = int(val) if len(args) == 0: usage() if len(args) < 2: usage('incorrect number of arguments') method = args[0] uri = args[1] if max_pages is not None and method != 'GET': fatal('--max-pages is only supported with method GET') params = {} for arg in args[2:]: key, val = arg.split('=') params[key] = val token = os.environ.get('OCTOHUB_TOKEN', None) conn = Connection(token) try: if max_pages is None: response = conn.send(method, uri, params, data) print(json.dumps(response.parsed, indent=1)) else: parsed = [] pager = Pager(conn, uri, params, max_pages=max_pages) for response in pager: parsed.extend(response.parsed) print(json.dumps(parsed, indent=1), end=' ') except ResponseError as e: fatal(e)
def main(): try: opts, args = getopt.gnu_getopt(sys.argv[1:], 'hn', ['help', 'noauth']) except getopt.GetoptError as e: usage(e) auth = True repos = [] for opt, val in opts: if opt in ('-h', '--help'): usage() elif opt in ('-n', '--noauth'): auth = False token = os.environ.get('OCTOHUB_TOKEN', None) if not token and auth: fatal('OCTOHUB_TOKEN is required, override with --noauth') if not auth: token = None if not len(args) == 1: usage() conn = Connection(token) if '/' in args[0]: owner = args[0].split('/')[0] repos.append(args[0].split('/')[1]) else: owner = args[0] try: repos = get_repos(conn, '/orgs/%s/repos' % owner) except ResponseError as e: repos = get_repos(conn, '/users/%s/repos' % owner) for repo in repos: response = conn.send('GET', '/repos/%s/%s/pulls' % (owner, repo)) if response.parsed: print('%s/%s\n' % (owner, repo)) for pull in response.parsed: print(' [%s] %s' % (pull.head.user.login, pull.title)) print(' %s' % pull.html_url) print()
def main(): try: l_opts = ['help', 'noauth', 'sort='] opts, args = getopt.gnu_getopt(sys.argv[1:], 'hns:', l_opts) except getopt.GetoptError as e: usage(e) auth = True sort_by = 'watchers' for opt, val in opts: if opt in ('-h', '--help'): usage() elif opt in ('-n', '--noauth'): auth = False elif opt in ('-s', '--sort'): sort_by = val if not len(args) == 1: usage() owner = args[0] token = os.environ.get('OCTOHUB_TOKEN', None) if not token and auth: fatal('OCTOHUB_TOKEN is required, override with --noauth') if not auth: token = None if sort_by not in ('watchers', 'forks'): fatal('sort value not supported: %s' % sort_by) conn = Connection(token) try: repos = get_repos(conn, '/orgs/%s/repos' % owner) except ResponseError as e: repos = get_repos(conn, '/users/%s/repos' % owner) print("# repo watchers forks") for repo in sorted(repos, key=lambda repo: repo[sort_by], reverse=True): print("%-30s %-8d %d" % (repo["name"], repo["watchers"], repo["forks"]))
def create_gist(token, uri, paths, public=False, description=None): data = {} data['files'] = {} for path in paths: name = os.path.basename(path) content = file(path, 'r').read() data['files'][name] = {'content': content} if description: data['description'] = description data['public'] = public conn = Connection(token) response = conn.send('POST', uri, params={}, data=json.dumps(data)) return response.parsed
uri = args[1] if max_pages is not None and method != 'GET': fatal('--max-pages is only supported with method GET') params = {} for arg in args[2:]: key, val = arg.split('=') params[key] = val token = os.environ.get('OCTOHUB_TOKEN', None) headers = {} if preview_key: headers[ 'Accept'] = 'application/vnd.github.%s-preview+json' % preview_key conn = Connection(token, headers=headers) try: if max_pages is None: response = conn.send(method, uri, params, data) print json.dumps(response.parsed, indent=1) else: parsed = [] pager = Pager(conn, uri, params, max_pages=max_pages) for response in pager: parsed.extend(response.parsed) print json.dumps(parsed, indent=1), except ResponseError, e: fatal(e)
def get_connection(): return Connection(TOKEN)
if len(args) < 2: usage('incorrect number of arguments') method = args[0] uri = args[1] if max_pages is not None and method != 'GET': fatal('--max-pages is only supported with method GET') params = {} for arg in args[2:]: key, val = arg.split('=') params[key] = val token = os.environ.get('OCTOHUB_TOKEN', None) conn = Connection(token) try: if max_pages is None: response = conn.send(method, uri, params, data) print json.dumps(response.parsed, indent=1) else: parsed = [] pager = Pager(conn, uri, params, max_pages=max_pages) for response in pager: parsed.extend(response.parsed) print json.dumps(parsed, indent=1), except ResponseError, e: fatal(e)