public async Task RunAsync()
        {
            var prBuild = await _teamcityService.GetTeamCityBuild(_buildId);

            var prNumber = GetBranchId(prBuild.BranchName);

            if (!prNumber.HasValue)
            {
                Console.WriteLine("This build is not for a pull request");
                return;
            }

            var github = new GithubApi(_gitToken);

            foreach (var configs in _configs)
            {
                var parts            = configs.Split(':');
                var oldConfiguration = parts[0];
                var newConfiguration = parts[1];

                var oldBuildType = await _teamcityService.GetTeamCityBuildType(oldConfiguration);

                var newBuildUrl = await _teamcityService.GetTeamCityLastBuildUrlOfBuildType(newConfiguration);

                await github.SetStatusCheckAsync(prBuild.Revisions.Revision.First().Version, new StatusCheck
                {
                    State       = StatusCheckType.success,
                    TargetUrl   = newBuildUrl,
                    Description = "Deprecated - This check has been replaced by a daily build",
                    Context     = $"{oldBuildType.Name} ({oldBuildType.Project.Name})"
                });
            }
        }
Exemple #2
0
        private async Task CheckCurrentBranch(DateTime now)
        {
            Console.WriteLine($"Checking status for build {_buildId}");
            var build = await _teamcityApi.GetTeamCityBuild(_buildId);

            var id       = GithubApi.GetBranchId(build.BranchName);
            var buildUrl = await _teamcityApi.GetTeamCityBuildUrl(_buildId, "", false);

            if (!id.HasValue)
            {
                Console.WriteLine($"{build.BranchName} is not a valid PR branch name");
                return;
            }

            var pullRequest = await _github.GetPullRequestAsync(id.Value);

            await CheckDerivationStatus(pullRequest, now, buildUrl);
        }