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