mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Backport #24013 by @lunny Fix #23998 Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		@@ -421,6 +421,10 @@ func CreateBranchProtection(ctx *context.APIContext) {
 | 
			
		||||
	if ruleName == "" {
 | 
			
		||||
		ruleName = form.BranchName //nolint
 | 
			
		||||
	}
 | 
			
		||||
	if len(ruleName) == 0 {
 | 
			
		||||
		ctx.Error(http.StatusBadRequest, "both rule_name and branch_name are empty", "both rule_name and branch_name are empty")
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	isPlainRule := !git_model.IsRuleNameSpecial(ruleName)
 | 
			
		||||
	var isBranchExist bool
 | 
			
		||||
@@ -502,7 +506,7 @@ func CreateBranchProtection(ctx *context.APIContext) {
 | 
			
		||||
 | 
			
		||||
	protectBranch = &git_model.ProtectedBranch{
 | 
			
		||||
		RepoID:                        ctx.Repo.Repository.ID,
 | 
			
		||||
		RuleName:                      form.RuleName,
 | 
			
		||||
		RuleName:                      ruleName,
 | 
			
		||||
		CanPush:                       form.EnablePush,
 | 
			
		||||
		EnableWhitelist:               form.EnablePush && form.EnablePushWhitelist,
 | 
			
		||||
		EnableMergeWhitelist:          form.EnableMergeWhitelist,
 | 
			
		||||
@@ -534,7 +538,7 @@ func CreateBranchProtection(ctx *context.APIContext) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if isBranchExist {
 | 
			
		||||
		if err = pull_service.CheckPRsForBaseBranch(ctx.Repo.Repository, form.RuleName); err != nil {
 | 
			
		||||
		if err = pull_service.CheckPRsForBaseBranch(ctx.Repo.Repository, ruleName); err != nil {
 | 
			
		||||
			ctx.Error(http.StatusInternalServerError, "CheckPRsForBaseBranch", err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
@@ -552,7 +556,7 @@ func CreateBranchProtection(ctx *context.APIContext) {
 | 
			
		||||
				}()
 | 
			
		||||
			}
 | 
			
		||||
			// FIXME: since we only need to recheck files protected rules, we could improve this
 | 
			
		||||
			matchedBranches, err := git_model.FindAllMatchedBranches(ctx, ctx.Repo.GitRepo, form.RuleName)
 | 
			
		||||
			matchedBranches, err := git_model.FindAllMatchedBranches(ctx, ctx.Repo.GitRepo, ruleName)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				ctx.Error(http.StatusInternalServerError, "FindAllMatchedBranches", err)
 | 
			
		||||
				return
 | 
			
		||||
@@ -568,7 +572,7 @@ func CreateBranchProtection(ctx *context.APIContext) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Reload from db to get all whitelists
 | 
			
		||||
	bp, err := git_model.GetProtectedBranchRuleByName(ctx, ctx.Repo.Repository.ID, form.RuleName)
 | 
			
		||||
	bp, err := git_model.GetProtectedBranchRuleByName(ctx, ctx.Repo.Repository.ID, ruleName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.Error(http.StatusInternalServerError, "GetProtectedBranchByID", err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user