From f6dbf0e7b36e6c460836b03ff0757839180852c5 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Wed, 15 Jan 2025 17:34:55 +0800 Subject: [PATCH] Fix incorrect TagName/BranchName usages (#33279) Add add a new test --- routers/web/repo/release.go | 1 + routers/web/repo/search.go | 2 +- routers/web/web.go | 2 +- services/context/repo.go | 4 ---- templates/repo/release_tag_header.tmpl | 2 +- tests/integration/release_test.go | 26 +++++++++++++++++--------- 6 files changed, 21 insertions(+), 16 deletions(-) diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index 19b83915af..284fd27abf 100644 --- a/routers/web/repo/release.go +++ b/routers/web/repo/release.go @@ -295,6 +295,7 @@ func SingleRelease(ctx *context.Context) { } ctx.Data["PageIsSingleTag"] = release.IsTag + ctx.Data["SingleReleaseTagName"] = release.TagName if release.IsTag { ctx.Data["Title"] = release.TagName } else { diff --git a/routers/web/repo/search.go b/routers/web/repo/search.go index c60301475f..d589586dad 100644 --- a/routers/web/repo/search.go +++ b/routers/web/repo/search.go @@ -70,7 +70,7 @@ func Search(ctx *context.Context) { res, err := git.GrepSearch(ctx, ctx.Repo.GitRepo, prepareSearch.Keyword, git.GrepOptions{ ContextLineNumber: 1, IsFuzzy: prepareSearch.IsFuzzy, - RefName: git.RefNameFromBranch(ctx.Repo.BranchName).String(), // BranchName should be default branch or the first existing branch + RefName: git.RefNameFromBranch(ctx.Repo.Repository.DefaultBranch).String(), // BranchName should be default branch or the first existing branch PathspecList: indexSettingToGitGrepPathspecList(), }) if err != nil { diff --git a/routers/web/web.go b/routers/web/web.go index 1fc5bc6545..1f72beadac 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -1592,7 +1592,7 @@ func registerRoutes(m *web.Router) { m.Get("/watchers", repo.Watchers) m.Get("/search", reqUnitCodeReader, repo.Search) m.Post("/action/{action}", reqSignIn, repo.Action) - }, optSignIn, context.RepoAssignment, context.RepoRef()) + }, optSignIn, context.RepoAssignment) common.AddOwnerRepoGitLFSRoutes(m, optSignInIgnoreCsrf, lfsServerEnabled) // "/{username}/{reponame}/{lfs-paths}": git-lfs support diff --git a/services/context/repo.go b/services/context/repo.go index 6c348b99cb..ef54b9cee8 100644 --- a/services/context/repo.go +++ b/services/context/repo.go @@ -56,7 +56,6 @@ type Repository struct { // RefFullName is the full ref name that the user is viewing RefFullName git.RefName BranchName string // it is the RefFullName's short name if its type is "branch" - TagName string // it is the RefFullName's short name if its type is "tag" TreePath string // Commit it is always set to the commit for the branch or tag, or just the commit that the user is viewing @@ -851,7 +850,6 @@ func RepoRefByType(detectRefType git.RefType) func(*Context) { ctx.Repo.CommitID = ctx.Repo.Commit.ID.String() } else if refType == git.RefTypeTag && ctx.Repo.GitRepo.IsTagExist(refShortName) { ctx.Repo.RefFullName = git.RefNameFromTag(refShortName) - ctx.Repo.TagName = refShortName ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetTagCommit(refShortName) if err != nil { @@ -901,8 +899,6 @@ func RepoRefByType(detectRefType git.RefType) func(*Context) { ctx.Data["BranchName"] = ctx.Repo.BranchName - ctx.Data["TagName"] = ctx.Repo.TagName - ctx.Data["CommitID"] = ctx.Repo.CommitID ctx.Data["CanCreateBranch"] = ctx.Repo.CanCreateBranch() // only used by the branch selector dropdown: AllowCreateNewRef diff --git a/templates/repo/release_tag_header.tmpl b/templates/repo/release_tag_header.tmpl index f96c76864f..fb17cf44c4 100644 --- a/templates/repo/release_tag_header.tmpl +++ b/templates/repo/release_tag_header.tmpl @@ -17,7 +17,7 @@ {{end}} {{if and (not .PageIsTagList) .CanCreateRelease}} - + {{ctx.Locale.Tr "repo.release.new_release"}} {{end}} diff --git a/tests/integration/release_test.go b/tests/integration/release_test.go index d3c4ed6a83..1a7f9e38b5 100644 --- a/tests/integration/release_test.go +++ b/tests/integration/release_test.go @@ -173,17 +173,25 @@ func TestViewReleaseListNoLogin(t *testing.T) { }, commitsToMain) } -func TestViewSingleReleaseNoLogin(t *testing.T) { +func TestViewSingleRelease(t *testing.T) { defer tests.PrepareTestEnv(t)() - req := NewRequest(t, "GET", "/user2/repo-release/releases/tag/v1.0") - resp := MakeRequest(t, req, http.StatusOK) - - htmlDoc := NewHTMLParser(t, resp.Body) - // check the "number of commits to main since this release" - releaseList := htmlDoc.doc.Find("#release-list .ahead > a") - assert.EqualValues(t, 1, releaseList.Length()) - assert.EqualValues(t, "3 commits", releaseList.First().Text()) + t.Run("NoLogin", func(t *testing.T) { + req := NewRequest(t, "GET", "/user2/repo-release/releases/tag/v1.0") + resp := MakeRequest(t, req, http.StatusOK) + htmlDoc := NewHTMLParser(t, resp.Body) + // check the "number of commits to main since this release" + releaseList := htmlDoc.doc.Find("#release-list .ahead > a") + assert.EqualValues(t, 1, releaseList.Length()) + assert.EqualValues(t, "3 commits", releaseList.First().Text()) + }) + t.Run("Login", func(t *testing.T) { + session := loginUser(t, "user1") + req := NewRequest(t, "GET", "/user2/repo1/releases/tag/delete-tag") // "delete-tag" is the only one with is_tag=true (although strange name) + resp := session.MakeRequest(t, req, http.StatusOK) + // the New Release button should contain the tag name + assert.Contains(t, resp.Body.String(), ``) + }) } func TestViewReleaseListLogin(t *testing.T) {