diff options
author | Nanguan Lin <70063547+lng2020@users.noreply.github.com> | 2023-09-13 12:43:31 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-13 04:43:31 +0000 |
commit | cda97a725347cdadd43af812749732b9d1ee6429 (patch) | |
tree | 133cde4ac79c539803e2262faff2c6e1ad0659fd /routers/web | |
parent | e6a059a3d0c699e00c05cfa81ab3bfd0598a89a2 (diff) | |
download | gitea-cda97a725347cdadd43af812749732b9d1ee6429.tar.gz gitea-cda97a725347cdadd43af812749732b9d1ee6429.zip |
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>
Diffstat (limited to 'routers/web')
-rw-r--r-- | routers/web/repo/setting/default_branch.go | 64 | ||||
-rw-r--r-- | routers/web/repo/setting/protected_branch.go | 50 |
2 files changed, 64 insertions, 50 deletions
diff --git a/routers/web/repo/setting/default_branch.go b/routers/web/repo/setting/default_branch.go new file mode 100644 index 0000000000..f0aa1a89e7 --- /dev/null +++ b/routers/web/repo/setting/default_branch.go @@ -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) + } +} diff --git a/routers/web/repo/setting/protected_branch.go b/routers/web/repo/setting/protected_branch.go index 5bfdb8f515..e0f2294a14 100644 --- a/routers/web/repo/setting/protected_branch.go +++ b/routers/web/repo/setting/protected_branch.go @@ -14,12 +14,8 @@ import ( "code.gitea.io/gitea/models/organization" "code.gitea.io/gitea/models/perm" access_model "code.gitea.io/gitea/models/perm/access" - repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/modules/base" "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/modules/web" "code.gitea.io/gitea/routers/web/repo" "code.gitea.io/gitea/services/forms" @@ -53,52 +49,6 @@ func ProtectedBranchRules(ctx *context.Context) { ctx.HTML(http.StatusOK, tplBranches) } -// 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 - } - } - - 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) - } -} - // SettingsProtectedBranch renders the protected branch setting page func SettingsProtectedBranch(c *context.Context) { ruleName := c.FormString("rule_name") |