Exemple #1
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;
        }
Exemple #2
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);
        }