예제 #1
0
파일: gist.py 프로젝트: JedMeister/octohub
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
예제 #2
0
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)
예제 #3
0
파일: list.py 프로젝트: JedMeister/octohub
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()
예제 #4
0
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"]))
예제 #5
0
파일: gist.py 프로젝트: JedMeister/octohub
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
예제 #6
0
파일: cmd.py 프로젝트: odony/octohub
    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)

예제 #7
0
def get_connection():
    return Connection(TOKEN)
예제 #8
0
    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)