private static async Task DeleteDefaultRepoAsync( Waddle.RepositoryService repoService, Waddle.Dtos.Project project, bool projectWasAbsent) { if (projectWasAbsent) { // when new projects are created, there's a defaul repository // let's remove that var allRepos = await repoService.GetRepositoryListAsync(project.Id); if (allRepos != null && allRepos.Count > 0) { await repoService.DeleteRepositoryAsync(project.Id, allRepos.First().Id); } } }
private async Task EnsureRepositoriesExistsAsync( ProjectManifest manifest, Waddle.AdoConnectionFactory factory, Waddle.RepositoryService repoService, Waddle.Dtos.Project project, bool projectWasAbsent) { if (project != null && manifest.Repositories != null && manifest.Repositories.Any()) { foreach (var repo in manifest.Repositories) { if (!string.IsNullOrWhiteSpace(repo.Name)) { var reposCollection = await repoService.GetRepositoryListAsync(project.Id); var repository = reposCollection .FirstOrDefault(r => r.Name.Equals(repo.Name, StringComparison.OrdinalIgnoreCase)); if (repository == null) { Logger.StatusBegin($"Creating Repository {repo.Name}..."); await ExecutionSupports.Retry(async() => { repository = await repoService.CreateAsync(project.Id, repo.Name); }, exception => { Logger.SilentError(exception.Message); }); Logger.StatusEndSuccess("Succeed"); } Logger.StatusBegin($"Setting up permissions for repository {repo.Name}..."); await EnsureRepositoryPermissionsAsync(factory, project, repo, repository); Logger.StatusEndSuccess("Succeed"); } } await DeleteDefaultRepoAsync(repoService, project, projectWasAbsent); } }