mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-29 21:26:10 +01:00
Backport #24013 by @lunny Fix #23998 Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
2b10eebed8
commit
abf0386e2e
|
@ -421,6 +421,10 @@ func CreateBranchProtection(ctx *context.APIContext) {
|
||||||
if ruleName == "" {
|
if ruleName == "" {
|
||||||
ruleName = form.BranchName //nolint
|
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)
|
isPlainRule := !git_model.IsRuleNameSpecial(ruleName)
|
||||||
var isBranchExist bool
|
var isBranchExist bool
|
||||||
|
@ -502,7 +506,7 @@ func CreateBranchProtection(ctx *context.APIContext) {
|
||||||
|
|
||||||
protectBranch = &git_model.ProtectedBranch{
|
protectBranch = &git_model.ProtectedBranch{
|
||||||
RepoID: ctx.Repo.Repository.ID,
|
RepoID: ctx.Repo.Repository.ID,
|
||||||
RuleName: form.RuleName,
|
RuleName: ruleName,
|
||||||
CanPush: form.EnablePush,
|
CanPush: form.EnablePush,
|
||||||
EnableWhitelist: form.EnablePush && form.EnablePushWhitelist,
|
EnableWhitelist: form.EnablePush && form.EnablePushWhitelist,
|
||||||
EnableMergeWhitelist: form.EnableMergeWhitelist,
|
EnableMergeWhitelist: form.EnableMergeWhitelist,
|
||||||
|
@ -534,7 +538,7 @@ func CreateBranchProtection(ctx *context.APIContext) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if isBranchExist {
|
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)
|
ctx.Error(http.StatusInternalServerError, "CheckPRsForBaseBranch", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -552,7 +556,7 @@ func CreateBranchProtection(ctx *context.APIContext) {
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
// FIXME: since we only need to recheck files protected rules, we could improve this
|
// 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 {
|
if err != nil {
|
||||||
ctx.Error(http.StatusInternalServerError, "FindAllMatchedBranches", err)
|
ctx.Error(http.StatusInternalServerError, "FindAllMatchedBranches", err)
|
||||||
return
|
return
|
||||||
|
@ -568,7 +572,7 @@ func CreateBranchProtection(ctx *context.APIContext) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reload from db to get all whitelists
|
// 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 {
|
if err != nil {
|
||||||
ctx.Error(http.StatusInternalServerError, "GetProtectedBranchByID", err)
|
ctx.Error(http.StatusInternalServerError, "GetProtectedBranchByID", err)
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in a new issue