public async Task ProcessPushWebhook(PushWebhookDTO pushWebhookDto) { var regex = new Regex(@"^refs\/heads\/(.+)$"); var match = regex.Match(pushWebhookDto.ref_); if (!match.Success) { return; } var repo = await _databaseContext.Repositories .Where(r => r.Id == pushWebhookDto.repository.id) .Select(r => r) .Include(r => r.Project) .SingleOrDefaultAsync(); var ticketName = match.Groups[1].Value; var ticket = await _ticketService.FindTicket(repo.Project, ticketName) ?? await _ticketService.CreateTicket(repo.Project, ticketName, "This ticket was created automatically.", TicketStatus.Opened); }
public async Task <IActionResult> Push([FromBody] PushWebhookDTO pushWebhookDto) { await _webhookService.ProcessPushWebhook(pushWebhookDto); return(Ok()); }