code.gitea.io/gitea@v1.21.7/routers/web/repo/setting/default_branch.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package setting 5 6 import ( 7 "net/http" 8 9 git_model "code.gitea.io/gitea/models/git" 10 "code.gitea.io/gitea/modules/context" 11 "code.gitea.io/gitea/modules/log" 12 "code.gitea.io/gitea/modules/setting" 13 "code.gitea.io/gitea/routers/web/repo" 14 repo_service "code.gitea.io/gitea/services/repository" 15 ) 16 17 // SetDefaultBranchPost set default branch 18 func SetDefaultBranchPost(ctx *context.Context) { 19 ctx.Data["Title"] = ctx.Tr("repo.settings.branches.update_default_branch") 20 ctx.Data["PageIsSettingsBranches"] = true 21 22 repo.PrepareBranchList(ctx) 23 if ctx.Written() { 24 return 25 } 26 27 repo := ctx.Repo.Repository 28 29 switch ctx.FormString("action") { 30 case "default_branch": 31 if ctx.HasError() { 32 ctx.HTML(http.StatusOK, tplBranches) 33 return 34 } 35 36 branch := ctx.FormString("branch") 37 if err := repo_service.SetRepoDefaultBranch(ctx, ctx.Repo.Repository, ctx.Repo.GitRepo, branch); err != nil { 38 switch { 39 case git_model.IsErrBranchNotExist(err): 40 ctx.Status(http.StatusNotFound) 41 default: 42 ctx.ServerError("SetDefaultBranch", err) 43 } 44 return 45 } 46 47 log.Trace("Repository basic settings updated: %s/%s", ctx.Repo.Owner.Name, repo.Name) 48 49 ctx.Flash.Success(ctx.Tr("repo.settings.update_settings_success")) 50 ctx.Redirect(setting.AppSubURL + ctx.Req.URL.EscapedPath()) 51 default: 52 ctx.NotFound("", nil) 53 } 54 }