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})" }); } }
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); }