summaryrefslogtreecommitdiffstats
path: root/routers/repo/setting_protected_branch.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/repo/setting_protected_branch.go')
-rw-r--r--routers/repo/setting_protected_branch.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/routers/repo/setting_protected_branch.go b/routers/repo/setting_protected_branch.go
index b5a115b6a4..80f44ead99 100644
--- a/routers/repo/setting_protected_branch.go
+++ b/routers/repo/setting_protected_branch.go
@@ -7,6 +7,7 @@ package repo
import (
"fmt"
"strings"
+ "time"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/auth"
@@ -125,6 +126,29 @@ func SettingsProtectedBranch(c *context.Context) {
c.Data["whitelist_users"] = strings.Join(base.Int64sToStrings(protectBranch.WhitelistUserIDs), ",")
c.Data["merge_whitelist_users"] = strings.Join(base.Int64sToStrings(protectBranch.MergeWhitelistUserIDs), ",")
c.Data["approvals_whitelist_users"] = strings.Join(base.Int64sToStrings(protectBranch.ApprovalsWhitelistUserIDs), ",")
+ contexts, _ := models.FindRepoRecentCommitStatusContexts(c.Repo.Repository.ID, 7*24*time.Hour) // Find last week status check contexts
+ for _, context := range protectBranch.StatusCheckContexts {
+ var found bool
+ for _, ctx := range contexts {
+ if ctx == context {
+ found = true
+ break
+ }
+ }
+ if !found {
+ contexts = append(contexts, context)
+ }
+ }
+
+ c.Data["branch_status_check_contexts"] = contexts
+ c.Data["is_context_required"] = func(context string) bool {
+ for _, c := range protectBranch.StatusCheckContexts {
+ if c == context {
+ return true
+ }
+ }
+ return false
+ }
if c.Repo.Owner.IsOrganization() {
teams, err := c.Repo.Owner.TeamsWithAccessToRepo(c.Repo.Repository.ID, models.AccessModeRead)
@@ -186,6 +210,10 @@ func SettingsProtectedBranchPost(ctx *context.Context, f auth.ProtectBranchForm)
if strings.TrimSpace(f.MergeWhitelistTeams) != "" {
mergeWhitelistTeams, _ = base.StringsToInt64s(strings.Split(f.MergeWhitelistTeams, ","))
}
+
+ protectBranch.EnableStatusCheck = f.EnableStatusCheck
+ protectBranch.StatusCheckContexts = f.StatusCheckContexts
+
protectBranch.RequiredApprovals = f.RequiredApprovals
if strings.TrimSpace(f.ApprovalsWhitelistUsers) != "" {
approvalsWhitelistUsers, _ = base.StringsToInt64s(strings.Split(f.ApprovalsWhitelistUsers, ","))