static int Main(string[] args) { var teamCityUrl = GetEnv("TEAMCITY_SERVERURL"); var teamCityUser = GetEnv("TEAMCITY_USER"); var teamCityPass = GetEnv("TEAMCITY_PASSWORD"); var githubCreds = GetEnv("GITHUB_CREDS"); var teamCity = new TeamCityAPI(teamCityUrl, new NetworkCredential(teamCityUser, teamCityPass)); var gitHub = new GitHubAPI(githubCreds); Console.WriteLine("Listing GitHub repos"); var repos = gitHub.GetRepos() .Where(repo => !_excludedRepos.Contains(repo.Name, StringComparer.OrdinalIgnoreCase)) .ToList(); Console.WriteLine("Listing projects under repos"); var projects = repos.AsParallel() .SelectMany(repo => gitHub.GetProjects(repo)) .ToList(); Console.WriteLine("Creating dependency tree"); MapRepoDependencies(projects); Console.WriteLine("Ensuring dependencies are consistent on TeamCity"); foreach (var repo in repos.Where(p => p.Dependencies.Any())) { var dependencies = repo.Dependencies .Select(r => r.Name) .Concat(new[] { "CoreCLR" }); teamCity.EnsureDependencies(repo.Name, dependencies); } return 0; }
static int Main(string[] args) { var teamCityUrl = GetEnv("TEAMCITY_SERVERURL"); var teamCityUser = GetEnv("TEAMCITY_USER"); var teamCityPass = GetEnv("TEAMCITY_PASSWORD"); var githubCreds = GetEnv("GITHUB_CREDS"); var teamCity = new TeamCityAPI(teamCityUrl, new NetworkCredential(teamCityUser, teamCityPass)); var gitHub = new GitHubAPI(githubCreds); Console.WriteLine("Listing GitHub repos"); var repos = gitHub.GetRepos() .Where(repo => !_excludedRepos.Contains(repo.Name, StringComparer.OrdinalIgnoreCase)) .ToList(); Console.WriteLine("Listing projects under repos"); var projects = repos.AsParallel() .SelectMany(repo => gitHub.GetProjects(repo)) .ToList(); Console.WriteLine("Creating dependency tree"); MapRepoDependencies(projects); Console.WriteLine("Ensuring dependencies are consistent on TeamCity"); foreach (var repo in repos.Where(p => p.Dependencies.Any())) { var dependencies = repo.Dependencies .Select(r => r.Name) .Concat(new[] { "CoreCLR" }); teamCity.EnsureDependencies(repo.Name, dependencies); } return(0); }