summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorCirno the Strongest <1447794+CirnoT@users.noreply.github.com>2020-12-18 13:37:55 +0100
committerGitHub <noreply@github.com>2020-12-18 13:37:55 +0100
commitefa9a8a6e308489cf5b5e0174007d78390c5f0e6 (patch)
tree945e91e4bbe71b65f96012b6011d842a855c8f54 /services
parent48bd02e753bf4bfe2d743ffed8ec05182f284ad0 (diff)
downloadgitea-efa9a8a6e308489cf5b5e0174007d78390c5f0e6.tar.gz
gitea-efa9a8a6e308489cf5b5e0174007d78390c5f0e6.zip
Show status check for merged PRs (#13975)
* Show status check for merged PRs * Handle PRs with no commits * Styling Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'services')
-rw-r--r--services/pull/pull.go21
1 files changed, 9 insertions, 12 deletions
diff --git a/services/pull/pull.go b/services/pull/pull.go
index f3fb762303..23a4bf9776 100644
--- a/services/pull/pull.go
+++ b/services/pull/pull.go
@@ -9,6 +9,7 @@ import (
"bytes"
"context"
"encoding/json"
+ "errors"
"fmt"
"strings"
"time"
@@ -641,31 +642,27 @@ func GetCommitMessages(pr *models.PullRequest) string {
// GetLastCommitStatus returns the last commit status for this pull request.
func GetLastCommitStatus(pr *models.PullRequest) (status *models.CommitStatus, err error) {
- if err = pr.LoadHeadRepo(); err != nil {
+ if err = pr.LoadBaseRepo(); err != nil {
return nil, err
}
- if pr.HeadRepo == nil {
- return nil, models.ErrPullRequestHeadRepoMissing{ID: pr.ID, HeadRepoID: pr.HeadRepoID}
- }
-
- headGitRepo, err := git.OpenRepository(pr.HeadRepo.RepoPath())
+ gitRepo, err := git.OpenRepository(pr.BaseRepo.RepoPath())
if err != nil {
return nil, err
}
- defer headGitRepo.Close()
+ defer gitRepo.Close()
- lastCommitID, err := headGitRepo.GetBranchCommitID(pr.HeadBranch)
+ compareInfo, err := gitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.MergeBase, pr.GetGitRefName())
if err != nil {
return nil, err
}
- err = pr.LoadBaseRepo()
- if err != nil {
- return nil, err
+ if compareInfo.Commits.Len() == 0 {
+ return nil, errors.New("pull request has no commits")
}
- statusList, err := models.GetLatestCommitStatus(pr.BaseRepo.ID, lastCommitID, models.ListOptions{})
+ sha := compareInfo.Commits.Front().Value.(*git.Commit).ID.String()
+ statusList, err := models.GetLatestCommitStatus(pr.BaseRepo.ID, sha, models.ListOptions{})
if err != nil {
return nil, err
}