Esempio n. 1
0
        private GitMessage FilterMessage(string message)
        {
            var result = new GitMessage();

            // Fix linebreaks
            message = message.Replace("\n", Environment.NewLine);

            // Remove Change-Id, and separate into subject/body parameters
            var lines = message.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
            int idx   = 0;

            foreach (var line in lines)
            {
                if (idx > 1)
                {
                    if (line.IndexOf("Change-Id") == -1)
                    {
                        result.body += line + Environment.NewLine;
                    }
                }
                else if (idx == 0)
                {
                    result.subject = line;
                }

                idx++;
            }

            result.subject = result.subject.Trim();
            result.body    = !string.IsNullOrWhiteSpace(result.body) ? result.body.Trim() : string.Empty;

            return(result);
        }
Esempio n. 2
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            [SignalR(HubName = "commitHub")] IAsyncCollector <SignalRMessage> signalRMessages,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");


            string  requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data        = JsonConvert.DeserializeObject(requestBody);

            var commitId      = data.head_commit.id.ToString().Substring(0, 8);
            var author        = data.head_commit.author.username;
            var commitMessage = data.head_commit.message;
            var repository    = data.repository.full_name;

            string responseMessage = $"{commitId} - {author} - {commitMessage}";

            GitMessage gitMessage = new GitMessage {
                Message    = responseMessage,
                Repository = repository
            };

            await signalRMessages.AddAsync(
                new SignalRMessage
            {
                Target    = "gitMessage",
                Arguments = new[] { gitMessage }
            }
                );

            return(new OkObjectResult(JsonConvert.SerializeObject(gitMessage)));
        }