def github_com_spider():
    state_file ='state.yml'
    load_state(state_file)
    if not pending_users:
        user = raw_input('Please enter in a GitHub user to bootstrap from: ').strip()
        pending_users.add(user)
    setup_proxies()

    while True:
        try:
            user = pending_users.pop()
        except __HOLE__:
            break

        users.add(user)
        repos = get_repos(user)
        logger.info('Beginning spider for %s with %d pending users (%s).  Found %d repos' %
                    (user, len(pending_users), pending_users, len(repos)))
        for repo in repos:
            url = 'git://%s.git' % repo[':url'].strip('http://')
            create(url=url)
            for new_user in get_collaborators(user, repo[':name']):
                # Don't repeat people
                record_user(new_user)

        dump_state(state_file)
    logger.info('All done.')

# git.kernel.org spider
dataset/ETHPy150Open ebroder/anygit/anygit/client/spider.py/github_com_spider