Exemplo n.º 1
0
        private NewAttachment[] BuildAttachments(PrReport report, Dictionary <string, User> users)
        {
            var overdueHours            = (_settings.OverdueTicks / 3600);
            List <NewAttachment> result = new List <NewAttachment>();
            var tags = $"[{string.Join("][", _settings.LessImportantTags)}]";

            var fields0 = BuildFields(report, report.NotOverdue, users);
            var fields1 = BuildFields(report, report.OverdueAndImportant, users);
            var fields2 = BuildFields(report, report.OverdueButNotImportant, users);

            var a0 = new NewAttachment("This channel is not able to show attachment.", fields0, null,
                                       null, "good", $"Updated PRs (within {overdueHours} hours)", null, new[] { "fields" });
            var a1 = new NewAttachment("This channel is not able to show attachment.", fields1, null,
                                       null, "danger", $"Overdue (Not updated in {overdueHours} hours)", null, new[] { "fields" });
            var a2 = new NewAttachment("This channel is not able to show attachment.", fields2, null,
                                       null, "#DCDCDC", $"Overdue but marked as {tags}", null, new [] { "fields" });

            if (report.NotOverdue.Count > 0)
            {
                result.Add(a0);
            }
            if (report.OverdueAndImportant.Count > 0)
            {
                result.Add(a1);
            }
            if (report.OverdueButNotImportant.Count > 0)
            {
                result.Add(a2);
            }
            return(result.ToArray());
        }
Exemplo n.º 2
0
        private MessageWithAttachments BuildSlackMessage(PrReport report, Dictionary <string, User> users)
        {
            var text = $"*{report.Repository.CombinedName}*";
            MessageWithAttachments message = new MessageWithAttachments(BuildAttachments(report, users), text, null, ":cat:");

            return(message);
        }
Exemplo n.º 3
0
        private Field[] BuildFields(PrReport report, List <Issue> issues, Dictionary <string, User> users)
        {
            var prRef = report.PullRequestRef;

            return
                (issues.Select(
                     i =>
            {
                var tags = (i.Labels != null && i.Labels.Any()) ? $"\r\tTags: {i.Labels.ToTagString()}" : string.Empty;
                var milestone = (i.Milestone != null) ? $"\r\tMilestone: {i.Milestone.Title}" : string.Empty;
                return new Field("",
                                 $"<{i.HtmlUrl}|{i.Title}>" +
                                 $"\r\tAuthor: <{users[i.User.Login].HtmlUrl}|{users[i.User.Login].Name}>" +
                                 $"\r\tCreated: `{prRef[i.Number].CreatedAt.ToEasternTime():MM/dd/yyyy hh:mm:ss K}`" +
                                 $"\r\tUpdated:`{prRef[i.Number].UpdatedAt.ToEasternTime():MM/dd/yyyy hh:mm:ss K}`" +
                                 $"\r\tOpen for: {GetDaysOrHourOpenString(prRef[i.Number].CreatedAt)}" +
                                 milestone +
                                 tags
                                 );
            }
                     )
                 .ToArray());
        }