summaryrefslogtreecommitdiffstats
path: root/routers/web
diff options
context:
space:
mode:
authorNanguan Lin <70063547+lng2020@users.noreply.github.com>2023-09-13 12:43:31 +0800
committerGitHub <noreply@github.com>2023-09-13 04:43:31 +0000
commitcda97a725347cdadd43af812749732b9d1ee6429 (patch)
tree133cde4ac79c539803e2262faff2c6e1ad0659fd /routers/web
parente6a059a3d0c699e00c05cfa81ab3bfd0598a89a2 (diff)
downloadgitea-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.go64
-rw-r--r--routers/web/repo/setting/protected_branch.go50
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")