private async Task PostDiscardedCommitCommentAsync( GitHubProject baseProject, GitHubPullRequest pullRequestToUpdate, GitCommit oldCommit, IGitHubClient client) { GitHubCombinedStatus combinedStatus = await client.GetStatusAsync( baseProject, oldCommit.Sha); CiStatusLine[] statuses = combinedStatus .Statuses .OrderBy(s => s.State) .ThenBy(s => s.Context) .Select(CiStatusLine.Create) .ToArray(); string statusLines = statuses .Aggregate(string.Empty, (acc, line) => acc + line.MarkdownLine + "\r\n"); string ciSummary = string.Join( " ", statuses .GroupBy(s => s.Emoticon) .Select(g => $"{g.Count()}{g.Key}") .ToArray()); string commentBody = $"Discarded [`{oldCommit.Sha.Substring(0, 7)}`]({oldCommit.HtmlUrl}): " + $"`{oldCommit.Message}`"; if (statuses.Any()) { commentBody += "\r\n\r\n" + "<details>" + "<summary>" + $"CI Status: {ciSummary} (click to expand)\r\n" + "</summary>" + $"\r\n\r\n{statusLines}\r\n" + "</details>"; } await client.PostCommentAsync( baseProject, pullRequestToUpdate.Number, commentBody); }
protected override Task <IssueStatus> GetStatusAsync() { return(_client.GetStatusAsync(Organization, Repo, Issue)); }