Пример #1
0
        public static EmbedBuilder GetOnIssuesUnassignedMessage(IssuesEvent.RootObject obj)
        {
            var builder = new EmbedBuilder()
            {
                Color       = Const.DISCORD_EMBED_COLOR,
                Description = $"{obj.sender.login} un-assigned user to issue #{obj.issue.number} for {obj.repository.full_name}"
            };

            builder.AddField(x =>
            {
                x.Name     = "Unassigned user";
                x.Value    = obj.assignee.login;
                x.IsInline = false;
            });

            builder.AddField(x =>
            {
                x.Name     = "Users assigned to issue";
                x.Value    = obj.issue.assignees.Count > 0 ? string.Join(", ", obj.issue.assignees.Select(o => o.login)) : "None";
                x.IsInline = false;
            });

            builder.AddField(x =>
            {
                x.Name     = "Url";
                x.Value    = obj.issue.html_url;
                x.IsInline = false;
            });

            return(builder);
        }
Пример #2
0
        public static EmbedBuilder GetOnIssuesUnlabeledMessage(IssuesEvent.RootObject obj)
        {
            var builder = new EmbedBuilder()
            {
                Color       = Const.DISCORD_EMBED_COLOR,
                Description = $"{obj.sender.login} removed a label from issue #{obj.issue.number} for {obj.repository.full_name}"
            };

            builder.AddField(x =>
            {
                x.Name     = "Removed label";
                x.Value    = obj.label.name;
                x.IsInline = false;
            });

            builder.AddField(x =>
            {
                x.Name     = "Current labels for issue";
                x.Value    = obj.issue.labels.Count > 0 ? string.Join(", ", obj.issue.labels.Select(o => o.name)) : "None";
                x.IsInline = false;
            });

            builder.AddField(x =>
            {
                x.Name     = "Url";
                x.Value    = obj.issue.html_url;
                x.IsInline = false;
            });

            return(builder);
        }
Пример #3
0
        private void OnIssues(IssuesEvent.RootObject obj)
        {
            //https://developer.github.com/v3/activity/events/types/#issuesevent
            if (obj == null)
            {
                return;
            }

            switch (obj.action)
            {
            case "opened":
                SendEventMessage(DiscordMessageFormatter.GetOnIssuesOpenedMessage(obj));
                break;

            case "closed":
                SendEventMessage(DiscordMessageFormatter.GetOnIssuesClosedMessage(obj));
                break;

            case "reopened":
                SendEventMessage(DiscordMessageFormatter.GetOnIssuesReopenedMessage(obj));
                break;

            case "assigned":
                SendEventMessage(DiscordMessageFormatter.GetOnIssuesAssignedMessage(obj));
                break;

            case "unassigned":
                SendEventMessage(DiscordMessageFormatter.GetOnIssuesUnassignedMessage(obj));
                break;

            case "labeled":
                SendEventMessage(DiscordMessageFormatter.GetOnIssuesLabeledMessage(obj));
                break;

            case "unlabeled":
                SendEventMessage(DiscordMessageFormatter.GetOnIssuesUnlabeledMessage(obj));
                break;
            }
        }
Пример #4
0
        public static EmbedBuilder GetOnIssuesClosedMessage(IssuesEvent.RootObject obj)
        {
            var builder = new EmbedBuilder()
            {
                Color       = Const.DISCORD_EMBED_COLOR,
                Description = $"{obj.sender.login} closed issue #{obj.issue.number} for {obj.repository.full_name}"
            };

            builder.AddField(x =>
            {
                x.Name     = obj.issue.title;
                x.Value    = obj.issue.body;
                x.IsInline = false;
            });

            builder.AddField(x =>
            {
                x.Name     = "Url";
                x.Value    = obj.issue.html_url;
                x.IsInline = false;
            });

            return(builder);
        }