Exemplo n.º 1
0
        public static void SendMessage(TravisCiWebhook build)
        {
            var    buildStatus = "👷🏼‍♂️🛠" + (build.Status == TravisCIBuildStatus.SUCCESS ? "✅" : "❌");
            string color       = build.Status == TravisCIBuildStatus.SUCCESS ? Consts.GREEN : Consts.RED;
            string buildType   = "";
            string prnumber    = "";

            switch (build.Type)
            {
            case TravisCIBuildType.API:
                buildType = "api";
                break;

            case TravisCIBuildType.CRON:
                buildType = "cron";
                break;

            case TravisCIBuildType.PULL_REQUEST:
                buildType = "pull request";
                prnumber  = $" (#{build.PullRequestNumber})";
                break;

            case TravisCIBuildType.PUSH:
                buildType = "push";
                break;
            }

            var WebHookUrl = Consts.SLACK_HOOK_URL;
            var client     = new SbmClient(WebHookUrl);
            var message    = new Message($"<!here> {buildStatus}  {build.AuthorName}'s <{build.BuildUrl}|{buildType}{prnumber}> {build.ResultMessage.ToLower()} ");

            message.AddAttachment(new Attachment()
                                  .SetColor(color)
                                  .AddField("Started at", build.StartedAt.UtcDateTime.ToString(), true)
                                  .AddField("Total build time", $"{build.Duration} seconds", true)
                                  .AddField("Build number", build.Number, true)
                                  .AddField("Compare", $"<{build.CompareUrl}|{build.Commit.Substring(0, 7)}>", true)
                                  );

            client.Send(message);
        }
Exemplo n.º 2
0
 public static string ToJson(this TravisCiWebhook self) => JsonConvert.SerializeObject(self, Converter.Settings);