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  }