private static async Task LoadReposAndCollaboratorsAsync(GitHubClient client, CachedOrg cachedOrg) { var repos = await client.Repository.GetAllForOrg(cachedOrg.Name); var i = 0; foreach (var repo in repos) { PrintRateLimit(client); PrintPercentage(i++, repos.Count, repo.FullName); var cachedRepo = new CachedRepo { Name = repo.Name, IsPrivate = repo.Private, LastPush = repo.PushedAt ?? repo.CreatedAt }; cachedOrg.Repos.Add(cachedRepo); foreach (var user in await client.Repository.Collaborator.GetAll(repo.Owner.Login, repo.Name)) { var permission = user.Permissions.Admin ? CachedPermission.Admin : user.Permissions.Push ? CachedPermission.Push : CachedPermission.Pull; var cachedCollaborator = new CachedUserAccess { RepoName = cachedRepo.Name, User = user.Login, Permission = permission }; cachedOrg.Collaborators.Add(cachedCollaborator); } } }
public string DescribeAccess(CachedUserAccess collaborator) { return(DescribeAccess(collaborator.RepoName, collaborator.User, collaborator.Permission)); }