Skip to content

Commit

Permalink
If no specific context is required for status check, require an overa…
Browse files Browse the repository at this point in the history
…ll success (#8318)

Signed-off-by: Elias Norberg <[email protected]>
  • Loading branch information
yzzyx authored and lunny committed Sep 30, 2019
1 parent 0d2566b commit 668d3d0
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
2 changes: 1 addition & 1 deletion options/locale/locale_en-US.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
10 changes: 9 additions & 1 deletion services/pull/commit_status.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit 668d3d0

Please sign in to comment.