mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	Fix merge dialog on protected branch with missing required statuses (#11074)
It is possible for misconfigured protected branches to have required status checks that are not in any of the current statuses: Pending, Success, Error, Failure, or Warning - presumably because the CI has not contacted us as yet. Fix #10636 by adding case: missing StatusChecks when these are missing
This commit is contained in:
		@@ -1098,6 +1098,7 @@ pulls.data_broken = This pull request is broken due to missing fork information.
 | 
				
			|||||||
pulls.files_conflicted = This pull request has changes conflicting with the target branch.
 | 
					pulls.files_conflicted = This pull request has changes conflicting with the target branch.
 | 
				
			||||||
pulls.is_checking = "Merge conflict checking is in progress. Try again in few moments."
 | 
					pulls.is_checking = "Merge conflict checking is in progress. Try again in few moments."
 | 
				
			||||||
pulls.required_status_check_failed = Some required checks were not successful.
 | 
					pulls.required_status_check_failed = Some required checks were not successful.
 | 
				
			||||||
 | 
					pulls.required_status_check_missing = Some required checks are missing.
 | 
				
			||||||
pulls.required_status_check_administrator = As an administrator, you may still merge this pull request.
 | 
					pulls.required_status_check_administrator = As an administrator, you may still merge this pull request.
 | 
				
			||||||
pulls.blocked_by_approvals = "This Pull Request doesn't have enough approvals yet. %d of %d approvals granted."
 | 
					pulls.blocked_by_approvals = "This Pull Request doesn't have enough approvals yet. %d of %d approvals granted."
 | 
				
			||||||
pulls.blocked_by_rejection = "This Pull Request has changes requested by an official reviewer."
 | 
					pulls.blocked_by_rejection = "This Pull Request has changes requested by an official reviewer."
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -451,9 +451,7 @@ func PrepareViewPullInfo(ctx *context.Context, issue *models.Issue) *git.Compare
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			return false
 | 
								return false
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		state := pull_service.MergeRequiredContextsCommitStatus(commitStatuses, pull.ProtectedBranch.StatusCheckContexts)
 | 
							ctx.Data["RequiredStatusCheckState"] = pull_service.MergeRequiredContextsCommitStatus(commitStatuses, pull.ProtectedBranch.StatusCheckContexts)
 | 
				
			||||||
		ctx.Data["RequiredStatusCheckState"] = state
 | 
					 | 
				
			||||||
		ctx.Data["IsRequiredStatusCheckSuccess"] = state.IsSuccess()
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.Data["HeadBranchMovedOn"] = headBranchSha != sha
 | 
						ctx.Data["HeadBranchMovedOn"] = headBranchSha != sha
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,7 +67,7 @@
 | 
				
			|||||||
	{{- else if .IsBlockedByApprovals}}red
 | 
						{{- else if .IsBlockedByApprovals}}red
 | 
				
			||||||
	{{- else if .IsBlockedByRejection}}red
 | 
						{{- else if .IsBlockedByRejection}}red
 | 
				
			||||||
	{{- else if and .EnableStatusCheck (or .RequiredStatusCheckState.IsFailure .RequiredStatusCheckState.IsError)}}red
 | 
						{{- else if and .EnableStatusCheck (or .RequiredStatusCheckState.IsFailure .RequiredStatusCheckState.IsError)}}red
 | 
				
			||||||
	{{- else if and .EnableStatusCheck (or .RequiredStatusCheckState.IsPending .RequiredStatusCheckState.IsWarning)}}yellow
 | 
						{{- else if and .EnableStatusCheck (or (not $.LatestCommitStatus) .RequiredStatusCheckState.IsPending .RequiredStatusCheckState.IsWarning)}}yellow
 | 
				
			||||||
	{{- else if and .RequireSigned (not .WillSign)}}}red
 | 
						{{- else if and .RequireSigned (not .WillSign)}}}red
 | 
				
			||||||
	{{- else if .Issue.PullRequest.IsChecking}}yellow
 | 
						{{- else if .Issue.PullRequest.IsChecking}}yellow
 | 
				
			||||||
	{{- else if .Issue.PullRequest.CanAutoMerge}}green
 | 
						{{- else if .Issue.PullRequest.CanAutoMerge}}green
 | 
				
			||||||
@@ -143,6 +143,11 @@
 | 
				
			|||||||
						<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 | 
											<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 | 
				
			||||||
						{{$.i18n.Tr "repo.pulls.required_status_check_failed"}}
 | 
											{{$.i18n.Tr "repo.pulls.required_status_check_failed"}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
									{{else if and .EnableStatusCheck (not .RequiredStatusCheckState.IsSuccess)}}
 | 
				
			||||||
 | 
										<div class="item text red">
 | 
				
			||||||
 | 
											<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 | 
				
			||||||
 | 
											{{$.i18n.Tr "repo.pulls.required_status_check_missing"}}
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
				{{else if and .RequireSigned (not .WillSign)}}
 | 
									{{else if and .RequireSigned (not .WillSign)}}
 | 
				
			||||||
					<div class="item text red">
 | 
										<div class="item text red">
 | 
				
			||||||
						<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 | 
											<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i>
 | 
				
			||||||
@@ -153,7 +158,7 @@
 | 
				
			|||||||
						{{$.i18n.Tr (printf "repo.signing.wont_sign.%s" .WontSignReason) }}
 | 
											{{$.i18n.Tr (printf "repo.signing.wont_sign.%s" .WontSignReason) }}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{$notAllOverridableChecksOk := or .IsBlockedByApprovals .IsBlockedByRejection (and .EnableStatusCheck (not .IsRequiredStatusCheckSuccess))}}
 | 
									{{$notAllOverridableChecksOk := or .IsBlockedByApprovals .IsBlockedByRejection (and .EnableStatusCheck (not .RequiredStatusCheckState.IsSuccess))}}
 | 
				
			||||||
				{{if and (or $.IsRepoAdmin (not $notAllOverridableChecksOk)) (or (not .RequireSigned) .WillSign)}}
 | 
									{{if and (or $.IsRepoAdmin (not $notAllOverridableChecksOk)) (or (not .RequireSigned) .WillSign)}}
 | 
				
			||||||
					{{if $notAllOverridableChecksOk}}
 | 
										{{if $notAllOverridableChecksOk}}
 | 
				
			||||||
						<div class="item text yellow">
 | 
											<div class="item text yellow">
 | 
				
			||||||
@@ -337,7 +342,7 @@
 | 
				
			|||||||
						{{svg "octicon-x" 16}}
 | 
											{{svg "octicon-x" 16}}
 | 
				
			||||||
					{{$.i18n.Tr "repo.pulls.blocked_by_rejection"}}
 | 
										{{$.i18n.Tr "repo.pulls.blocked_by_rejection"}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{else if and .EnableStatusCheck (not .IsRequiredStatusCheckSuccess)}}
 | 
									{{else if and .EnableStatusCheck (not .RequiredStatusCheckState.IsSuccess)}}
 | 
				
			||||||
					<div class="item text red">
 | 
										<div class="item text red">
 | 
				
			||||||
						{{svg "octicon-x" 16}}
 | 
											{{svg "octicon-x" 16}}
 | 
				
			||||||
						{{$.i18n.Tr "repo.pulls.required_status_check_failed"}}
 | 
											{{$.i18n.Tr "repo.pulls.required_status_check_failed"}}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user