Skip to content

Commit

Permalink
Fix protected branch for API (go-gitea#24013)
Browse files Browse the repository at this point in the history
  • Loading branch information
lunny authored and Linux User committed Apr 10, 2023
1 parent 2b10eeb commit 2d7c1df
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions routers/api/v1/repo/branch.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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
}
Expand All @@ -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
Expand All @@ -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
Expand Down

0 comments on commit 2d7c1df

Please sign in to comment.