mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01:00 
			
		
		
		
	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>
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							48bd02e753
						
					
				
				
					commit
					efa9a8a6e3
				
			| @@ -325,6 +325,20 @@ func PrepareMergedViewPullInfo(ctx *context.Context, issue *models.Issue) *git.C | ||||
| 	} | ||||
| 	ctx.Data["NumCommits"] = compareInfo.Commits.Len() | ||||
| 	ctx.Data["NumFiles"] = compareInfo.NumFiles | ||||
|  | ||||
| 	if compareInfo.Commits.Len() != 0 { | ||||
| 		sha := compareInfo.Commits.Front().Value.(*git.Commit).ID.String() | ||||
| 		commitStatuses, err := models.GetLatestCommitStatus(ctx.Repo.Repository.ID, sha, models.ListOptions{}) | ||||
| 		if err != nil { | ||||
| 			ctx.ServerError("GetLatestCommitStatus", err) | ||||
| 			return nil | ||||
| 		} | ||||
| 		if len(commitStatuses) != 0 { | ||||
| 			ctx.Data["LatestCommitStatuses"] = commitStatuses | ||||
| 			ctx.Data["LatestCommitStatus"] = models.CalcCommitStatus(commitStatuses) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return compareInfo | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
| 	} | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| {{if $.LatestCommitStatus}} | ||||
|     {{if not $.Issue.PullRequest.HasMerged}} | ||||
|         <div class="ui top attached header"> | ||||
|             {{if eq .LatestCommitStatus.State "pending"}} | ||||
|                 {{$.i18n.Tr "repo.pulls.status_checking"}} | ||||
| @@ -14,6 +15,7 @@ | ||||
|                 {{$.i18n.Tr "repo.pulls.status_checking"}} | ||||
|             {{end}} | ||||
|     	    </div> | ||||
|     {{end}} | ||||
|  | ||||
|     {{range $.LatestCommitStatuses}} | ||||
|         <div class="ui attached segment"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user