Exemplo n.º 1
0
        private async Task <IList <ICECommit> > GetPullRequestCommitsInternal(string repositoryName, int pullRequestNumber)
        {
            var result = new List <ICECommit>();

            var commits = await _service.GetPullRequestCommits(repositoryName, pullRequestNumber);

            foreach (var commit in commits)
            {
                var ceCommit = new CECommit()
                {
                    Repo    = repositoryName,
                    Sha     = commit.Sha,
                    Message = commit.Commit.Message //,
                                                    //Files = commit.Commit.Files.Select(f => f.Filename).ToList()
                };

                result.Add(ceCommit);
            }

            return(result);
        }
Exemplo n.º 2
0
        // Commits
        private async Task <IList <ICECommit> > GetCommitsInternal(string repositoryName, string branchName)
        {
            var result = new List <ICECommit>();

            var commits = await _service.GetCommits(repositoryName, branchName);

            foreach (var commit in commits)
            {
                var ceCommit = new CECommit()
                {
                    Repo    = repositoryName,
                    Branch  = branchName,
                    Sha     = commit.Sha,
                    Message = commit.Commit.Message,
                    Files   = commit.Files.Select(f => f.Filename).ToList()
                };

                result.Add(ceCommit);
            }

            return(result);
        }
Exemplo n.º 3
0
        private async Task <IList <ICEPullRequest> > SearchPullRequestsByJiraKeyInternal(string repositoryName, string jiraIssueKey)
        {
            var result = new List <ICEPullRequest>();

            var pullRequests = await _service.SearchPullRequests(repositoryName, jiraIssueKey);

            foreach (var item in pullRequests.Items)
            {
                var pullRequestDetails = await _service.GetPullRequest(repositoryName, item.Number);

                var cePullRequest = new CEPullRequest()
                {
                    Repo      = repositoryName,
                    Id        = pullRequestDetails.Id,
                    Number    = pullRequestDetails.Number,
                    Sha       = pullRequestDetails.Base.Sha,
                    Title     = pullRequestDetails.Title,
                    Status    = pullRequestDetails.State.ToString(),
                    CreatedAt = pullRequestDetails.CreatedAt.UtcDateTime,
                    UpdatedAt = pullRequestDetails.UpdatedAt.UtcDateTime,

                    ChangedFiles = pullRequestDetails.ChangedFiles,
                    Additions    = pullRequestDetails.Additions,
                    Deletions    = pullRequestDetails.Deletions,

                    Url      = pullRequestDetails.Url.AbsolutePath,
                    PatchUrl = pullRequestDetails.PatchUrl.AbsolutePath,
                    DiffUrl  = pullRequestDetails.DiffUrl.AbsolutePath,
                    HtmlUrl  = pullRequestDetails.HtmlUrl.AbsolutePath,

                    Head    = pullRequestDetails.Head.Sha,
                    Base    = pullRequestDetails.Base.Sha,
                    HeadRef = pullRequestDetails.Head.Ref,
                    BaseRef = pullRequestDetails.Base.Ref,

                    IsLocked    = pullRequestDetails.Locked,
                    IsMerged    = pullRequestDetails.Merged,
                    IsMergeable = pullRequestDetails.Mergeable,
                    User        = pullRequestDetails.User.Login,

                    CommentCount = item.Comments,
                    CommitCount  = pullRequestDetails.Commits
                };
                if (pullRequestDetails.Merged)
                {
                    cePullRequest.MergedBy = pullRequestDetails.MergedBy.Login;
                    cePullRequest.MergedAt = pullRequestDetails.MergedAt.Value.UtcDateTime;
                }
                if (pullRequestDetails.ClosedAt.HasValue)
                {
                    cePullRequest.ClosedAt = pullRequestDetails.ClosedAt.Value.UtcDateTime;
                }
                if (cePullRequest.CommitCount > 0)
                {
                    var commitSha = cePullRequest.Head;
                    for (int commitIdx = 0; commitIdx < cePullRequest.CommitCount; commitIdx++)
                    {
                        try
                        {
                            var commit = await _service.GetPullRequestCommits(repositoryName, commitSha);

                            var ceCommit = new CECommit()
                            {
                                Repo    = repositoryName,
                                Branch  = cePullRequest.HeadRef,
                                Sha     = commit.Sha,
                                Message = commit.Commit.Message,
                                Files   = commit.Files.Select(f => f.Filename).ToList()
                            };
                            cePullRequest.Commits.Add(ceCommit);
                            commitSha = commit.Commit.Tree.Sha;
                        }
                        catch (Octokit.NotFoundException)
                        {
                        }
                    }
                }

                result.Add(cePullRequest);
            }
            return(result);
        }