def sync_gh_teams(gha, org_name):
    print('syncing teams...')
    req = gha.orgs._(org_name).teams
    for team_data in client.iter_get(req):
        full_name = team_data['name']
        if full_name == 'Owners' or team_data['id'] == getattr(
                settings, 'GH_WELCOME_TEAM', None):
            continue
        name, typ, perm_name = full_name.split()
        perm, created = models.Perm.objects.get_or_create(name=perm_name)
        if typ == 'team':
            team, created = models.Team.objects.get_or_create(name=name)
            for user in get_users_for_team(gha, team_data['id']):
                models.UserPermTeam.objects.get_or_create(user=user,
                                                          perm=perm,
                                                          team=team)
            for repo in get_repos_for_team(gha, team_data['id']):
                models.RepoExtension.objects.get_or_create(repo=repo,
                                                           team=team)
        elif typ == 'repo':
            repo_full_name = '{}/{}'.format(org_name, name)
            repo = Repo.objects.get(full_name=repo_full_name,
                                    is_enterprise=False)
            for user in get_users_for_team(gha, team_data['id']):
                models.UserPermRepo.objects.get_or_create(user=user,
                                                          perm=perm,
                                                          repo=repo)
def get_repos_for_team(gha, team_id):
    req = gha.teams._(str(team_id)).repos
    for repo_data in client.iter_get(req):
        print(repo_data['full_name'])
        repo = Repo.objects.get(full_name=repo_data['full_name'],
                                is_enterprise=False)
        yield repo
def sync_gh_users(gha, org_name):
    print('syncing users...')
    req = gha.orgs._(org_name).members
    for user_data in client.iter_get(req):
        User.objects.get_or_create(gh_id=user_data['id'],
                                   defaults={
                                       'stub':
                                       True,
                                       'username':
                                       generate_username(user_data['login'])
                                   })
Ejemplo n.º 4
0
def sync_gh_teams(gha, org_name):
    print('syncing teams...')
    req = gha.orgs._(org_name).teams
    for team_data in client.iter_get(req):
        full_name = team_data['name']
        if full_name == 'Owners' or team_data['id'] == getattr(settings, 'GH_WELCOME_TEAM', None):
            continue
        name, typ, perm_name = full_name.split()
        perm, created = models.Perm.objects.get_or_create(name=perm_name)
        if typ == 'team':
            team, created = models.Team.objects.get_or_create(name=name)
            for user in get_users_for_team(gha, team_data['id']):
                models.UserPermTeam.objects.get_or_create(user=user, perm=perm, team=team)
            for repo in get_repos_for_team(gha, team_data['id']):
                models.RepoExtension.objects.get_or_create(repo=repo, team=team)
        elif typ == 'repo':
            repo_full_name = '{}/{}'.format(org_name, name)
            repo = Repo.objects.get(full_name=repo_full_name, is_enterprise=False)
            for user in get_users_for_team(gha, team_data['id']):
                models.UserPermRepo.objects.get_or_create(user=user, perm=perm, repo=repo)
Ejemplo n.º 5
0
def get_repos_for_team(gha, team_id):
    req = gha.teams._(str(team_id)).repos
    for repo_data in client.iter_get(req):
        print(repo_data['full_name'])
        repo = Repo.objects.get(full_name=repo_data['full_name'], is_enterprise=False)
        yield repo
Ejemplo n.º 6
0
def get_users_for_team(gha, team_id):
    req = gha.teams._(str(team_id)).members
    for user_data in client.iter_get(req):
        user = User.objects.get(gh_id=user_data['id'])
        yield user
Ejemplo n.º 7
0
def sync_gh_users(gha, org_name):
    print('syncing users...')
    req = gha.orgs._(org_name).members
    for user_data in client.iter_get(req):
        User.objects.get_or_create(gh_id=user_data['id'], defaults={'stub': True, 'username': generate_username(user_data['login'])})
Ejemplo n.º 8
0
def sync_gh_repos(gha, org_name):
    print('syncing repos...')
    req = gha.orgs._(org_name).repos
    for repo_data in client.iter_get(req):
        Repo.objects.sync_repo(repo_data)
def get_users_for_team(gha, team_id):
    req = gha.teams._(str(team_id)).members
    for user_data in client.iter_get(req):
        user = User.objects.get(gh_id=user_data['id'])
        yield user
def sync_gh_repos(gha, org_name):
    print('syncing repos...')
    req = gha.orgs._(org_name).repos
    for repo_data in client.iter_get(req):
        Repo.objects.sync_repo(repo_data)