mirror of https://github.com/go-gitea/gitea
Update status and code index after changing the default branch (#27018)
Fix #26723 Add `ChangeDefaultBranch` to the `notifier` interface and implement it in `indexerNotifier`. So when changing the default branch, `indexerNotifier` sends a message to the `indexer queue` to update the index. --------- Co-authored-by: techknowlogick <matti@mdranta.net>pull/20242/head^2
parent
e6a059a3d0
commit
cda97a7253
@ -0,0 +1,64 @@ |
||||
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package setting |
||||
|
||||
import ( |
||||
"net/http" |
||||
|
||||
repo_model "code.gitea.io/gitea/models/repo" |
||||
"code.gitea.io/gitea/modules/context" |
||||
"code.gitea.io/gitea/modules/git" |
||||
"code.gitea.io/gitea/modules/log" |
||||
"code.gitea.io/gitea/modules/setting" |
||||
"code.gitea.io/gitea/routers/web/repo" |
||||
notify_service "code.gitea.io/gitea/services/notify" |
||||
) |
||||
|
||||
// SetDefaultBranchPost set default branch
|
||||
func SetDefaultBranchPost(ctx *context.Context) { |
||||
ctx.Data["Title"] = ctx.Tr("repo.settings.branches.update_default_branch") |
||||
ctx.Data["PageIsSettingsBranches"] = true |
||||
|
||||
repo.PrepareBranchList(ctx) |
||||
if ctx.Written() { |
||||
return |
||||
} |
||||
|
||||
repo := ctx.Repo.Repository |
||||
|
||||
switch ctx.FormString("action") { |
||||
case "default_branch": |
||||
if ctx.HasError() { |
||||
ctx.HTML(http.StatusOK, tplBranches) |
||||
return |
||||
} |
||||
|
||||
branch := ctx.FormString("branch") |
||||
if !ctx.Repo.GitRepo.IsBranchExist(branch) { |
||||
ctx.Status(http.StatusNotFound) |
||||
return |
||||
} else if repo.DefaultBranch != branch { |
||||
repo.DefaultBranch = branch |
||||
if err := ctx.Repo.GitRepo.SetDefaultBranch(branch); err != nil { |
||||
if !git.IsErrUnsupportedVersion(err) { |
||||
ctx.ServerError("SetDefaultBranch", err) |
||||
return |
||||
} |
||||
} |
||||
if err := repo_model.UpdateDefaultBranch(repo); err != nil { |
||||
ctx.ServerError("SetDefaultBranch", err) |
||||
return |
||||
} |
||||
|
||||
notify_service.ChangeDefaultBranch(ctx, repo) |
||||
} |
||||
|
||||
log.Trace("Repository basic settings updated: %s/%s", ctx.Repo.Owner.Name, repo.Name) |
||||
|
||||
ctx.Flash.Success(ctx.Tr("repo.settings.update_settings_success")) |
||||
ctx.Redirect(setting.AppSubURL + ctx.Req.URL.EscapedPath()) |
||||
default: |
||||
ctx.NotFound("", nil) |
||||
} |
||||
} |
Loading…
Reference in new issue