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); }
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))); }