public static SlackPayload FormatFailedBuild(Build build, string slackChannel, string updateTs, SlackUserResponse pullRequestOwner) { var payloadBuilder = new SlackPayloadBuilder(); var builder = payloadBuilder .SendsTo(slackChannel) .PostsAsThreadIn(updateTs) .LinksNames(true) .HasPreviewText($"Build of your PR failed."); var buildString = !string.IsNullOrEmpty(build.Url) ? $"<{build.WebUrl}|the build>" : "the build"; if (pullRequestOwner != null) { builder.WithSection(s => s.HasText($"Hey <@{pullRequestOwner.SlackUser.Id}>, {buildString} of this PR failed.")); } else { builder.WithSection(s => s.HasText($"I was unable to find who to tag for this PullRequest, but {buildString} failed.")); } return(builder.Build()); }
public static SlackPayload FormatNewPullRequest(PullRequest pr, string slackChannel) { var payloadBuilder = new SlackPayloadBuilder(); return(payloadBuilder .SendsTo(slackChannel) .HasPreviewText($"New PR in {pr.RepositoryName} from {pr.AuthorName}") .WithDivider() .WithContext(cbb => cbb.HasText($":new: Pull-Request from {pr.AuthorName} in {pr.RepositoryName}")) .WithSection(sbb => sbb.HasText($"<{pr.Url}|{pr.Title}>") .HasField("Author", pr.AuthorName) .HasField("Repository", pr.RepositoryName)) .WithDivider() .Build()); }
public static SlackPayload FormatUpdatedPullRequest(PullRequest pr, string slackChannel, string identifier) { var payloadBuilder = new SlackPayloadBuilder(); return(payloadBuilder .SendsTo(slackChannel) .UpdatesMessage(identifier) .HasPreviewText($"New PR in {pr.RepositoryName} from {pr.AuthorName}") .WithDivider() .WithContext(cbb => cbb.HasText($":new: Pull-Request from {pr.AuthorName} in {pr.RepositoryName}")) .WithSection(sbb => sbb.HasText($"<{pr.Url}|{pr.Title}>") .HasField("Author", pr.AuthorName) .HasField("Repository", pr.RepositoryName) .HasField("Reviewers", FormatReviewersField(pr.Reviewers)) .HasField("State", pr.Status.ToString())) .WithDivider() .Build()); }