示例#1
0
def list_repos(settings: Settings) -> Dict[str, str]:
    repos = github_api.get_all(
        f'https://api.github.com/orgs/{settings.org}/repos?per_page=100',
        headers={'Authorization': f'token {settings.api_key}'},
    )
    return github_api.filter_repos(
        repos,
        forks=settings.forks,
        private=settings.private,
        collaborator=settings.collaborator,
    )
示例#2
0
def list_repos(settings: Settings) -> Dict[str, str]:
    repos = github_api.get_all(
        f'{settings.base_url}/user/repos?per_page=100',
        headers={'Authorization': f'token {settings.api_key}'},
    )
    return github_api.filter_repos(
        repos,
        forks=settings.forks,
        private=settings.private,
        collaborator=settings.collaborator,
        archived=settings.archived,
    )
示例#3
0
def test_get_all(mock_urlopen):
    mock_urlopen.side_effect = urlopen_side_effect({
        'https://example.com/api': FakeResponse(
            b'["page1_1", "page1_2"]',
            next_link='https://example.com/api?page=2',
        ),
        'https://example.com/api?page=2': FakeResponse(
            b'["page2_1", "page2_2"]',
            next_link='https://example.com/api?page=3',
        ),
        'https://example.com/api?page=3': FakeResponse(
            b'["page3_1"]',
        ),
    })

    ret = get_all('https://example.com/api')
    assert ret == ['page1_1', 'page1_2', 'page2_1', 'page2_2', 'page3_1']
示例#4
0
def list_repos(settings: Settings) -> Dict[str, str]:
    repos = []
    to_search = [settings.repo]

    while to_search:
        slug = to_search.pop()
        res = github_api.get_all(
            f'{settings.base_url}/repos/{slug}/forks?per_page=100',
            headers={'Authorization': f'token {settings.api_key}'},
        )
        repos.extend(res)
        to_search.extend(repo['full_name'] for repo in res if repo['forks'])

    return github_api.filter_repos(
        repos,
        forks=settings.forks,
        private=settings.private,
        collaborator=settings.collaborator,
        archived=settings.archived,
    )