Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Push([FromBody] PushWebhookDTO pushWebhookDto)
        {
            await _webhookService.ProcessPushWebhook(pushWebhookDto);

            return(Ok());
        }