mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	If no specific context is required for status check, require an overall success (#8318)
Signed-off-by: Elias Norberg <elias@aisle.se>
This commit is contained in:
		
				
					committed by
					
						
						Lunny Xiao
					
				
			
			
				
	
			
			
			
						parent
						
							0d2566b560
						
					
				
				
					commit
					668d3d02aa
				
			@@ -1326,7 +1326,7 @@ settings.protect_merge_whitelist_committers_desc = Allow only whitelisted users
 | 
			
		||||
settings.protect_merge_whitelist_users = Whitelisted users for merging:
 | 
			
		||||
settings.protect_merge_whitelist_teams = Whitelisted teams for merging:
 | 
			
		||||
settings.protect_check_status_contexts = Enable Status Check
 | 
			
		||||
settings.protect_check_status_contexts_desc = Require status checks to pass before merging Choose which status checks must pass before branches can be merged into a branch that matches this rule. When enabled, commits must first be pushed to another branch, then merged or pushed directly to a branch that matches this rule after status checks have passed.
 | 
			
		||||
settings.protect_check_status_contexts_desc = Require status checks to pass before merging Choose which status checks must pass before branches can be merged into a branch that matches this rule. When enabled, commits must first be pushed to another branch, then merged or pushed directly to a branch that matches this rule after status checks have passed. If no contexts are selected, the last commit must be successful regardless of context.
 | 
			
		||||
settings.protect_check_status_contexts_list = Status checks found in the last week for this repository
 | 
			
		||||
settings.protect_required_approvals = Required approvals:
 | 
			
		||||
settings.protect_required_approvals_desc = Allow only to merge pull request with enough positive reviews of whitelisted users or teams.
 | 
			
		||||
 
 | 
			
		||||
@@ -8,12 +8,20 @@ package pull
 | 
			
		||||
import (
 | 
			
		||||
	"code.gitea.io/gitea/models"
 | 
			
		||||
	"code.gitea.io/gitea/modules/git"
 | 
			
		||||
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// IsCommitStatusContextSuccess returns true if all required status check contexts succeed.
 | 
			
		||||
func IsCommitStatusContextSuccess(commitStatuses []*models.CommitStatus, requiredContexts []string) bool {
 | 
			
		||||
	// If no specific context is required, require that last commit status is a success
 | 
			
		||||
	if len(requiredContexts) == 0 {
 | 
			
		||||
		status := models.CalcCommitStatus(commitStatuses)
 | 
			
		||||
		if status == nil || status.State != models.CommitStatusSuccess {
 | 
			
		||||
			return false
 | 
			
		||||
		}
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, ctx := range requiredContexts {
 | 
			
		||||
		var found bool
 | 
			
		||||
		for _, commitStatus := range commitStatuses {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user