Ejemplo n.º 1
0
        public void RebaseTicket_FailedToFindPullRequest()
        {
            _bitbucketService.Setup(b => b.GetPullRequestById(It.IsAny <int>()))
            .Returns(new PullRequest());

            var result = _lazyGitLogic.RebaseTicket(GetTicketInformation().First());

            _gitManager.Verify(gm => gm.RebaseBranch(It.IsAny <string>(), It.IsAny <string>()), Times.Never);

            Assert.Equal(RebaseStatus.FailedToFindPullRequest, result.Status);
        }
Ejemplo n.º 2
0
        public async Task Run()
        {
            var jiraResponse = await _lazyGitLogic.GetJiraTickets();

            if (!jiraResponse.Issues.Any())
            {
                Log.Debug("No Jira tickets to process, terminating application.");
                return;
            }

            var ticketList = (await _lazyGitLogic.GetPullRequestInfoForJiraTickets(jiraResponse.Issues.Select(i => i.Key)))
                             .ToList();

            if (!ticketList.Any())
            {
                Log.Debug("No pull requests found for Jira tickets, terminating application.");
                return;
            }

            foreach (var ticket in ticketList)
            {
                ticket.Summary = jiraResponse.Issues
                                 .First(jt => jt.Key == ticket.JiraKey).Fields.Summary
                                 ?? string.Empty;

                if (ticket.PullRequestId == 0)
                {
                    continue;
                }

                var rebaseResult = _lazyGitLogic.RebaseTicket(ticket);

                ticket.RebaseStatus = rebaseResult.Status;
                ticket.JiraUrl      = _baseTicketUrl + ticket.JiraKey;

                if (!rebaseResult.RebaseSuccess)
                {
                    continue;
                }

                // Don't delete the branch or update the Jira ticket if the merge failed
                if (!_lazyGitLogic.MergePullRequest(ticket.PullRequestId))
                {
                    continue;
                }

                _lazyGitLogic.DeleteBranch(rebaseResult.SourceBranch);

                var updateSuccess = await _lazyGitLogic.UpdateJiraTicket(ticket.JiraKey);

                if (!updateSuccess)
                {
                    Log.Warning("Failed to update Jira ticket with key: {JiraKey}", ticket.JiraKey);
                }
            }

            _lazyGitLogic.ProcessEmails(ticketList);
        }