Slack Integration - Как уведомить пользователя с @ при публикации на канале - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть этот код, который уведомляет свободный канал после завершения сборки. В некоторых случаях, когда происходит сбой сборки, я хочу добавить уведомление для себя, чтобы я мог быстро решить проблемы. Как я могу обновить это, чтобы включить уведомление кому-то, используя символ @?

Некоторые примеры, которые я вижу в Интернете, используют конструктор SlackMessage для добавления userName, но по какой-то причине я не могу перегрузить этот конструктор.

public static void PostToSlack()
        {
            string url= "...";
            string slackUrl = GlobalData.slackUrl;
            string buildName = TestContext.Parameters["BuildName"];
            string buildID = TestContext.Parameters["BuildID"];
            string testName = TestContext.CurrentContext.Test.Name;
            string outcome = TestContext.CurrentContext.Result.Outcome.ToString();

            //If tests failed but the suite actually completed, set more understandable outcome message
            if (outcome == "Failed(Child)")
            {
                outcome = "Completed with Issues";
            }

            //Build the text string to post to slack
            string postText = "Build Completed";

            SlackMessage message = new SlackMessage
            {
                text = postText
            };


            //Convert serializable object to JSON
            string json = JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented);

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(slackUrl);
            httpWebRequest.ContentType = "application/json";
            httpWebRequest.Method = "POST";

            //Send to Slack
            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                streamWriter.Write(json);
                streamWriter.Flush();
                streamWriter.Close();
            }

            //Error checking if Slack sends back a 404 or 400
            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
            }

        }
...