loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: use correct default branch for migrated wiki (#6754)

- Instead of getting the default branch of the 'code' repository, get the default branch of the wiki repository.
- It's a bug of forgejo/forgejo#2264, likely caused by the confusion between `gitrepo` (the package name) and `gitRepo` (the git repo for the just migrated wiki repository).
- Adjusted existing integration test.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6754
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz>

authored by

Gusted
Gusted
and committed by
Earl Warren
59910a46 7579f258

+15 -12
+2 -3
services/repository/migrate.go
··· 15 15 repo_model "code.gitea.io/gitea/models/repo" 16 16 user_model "code.gitea.io/gitea/models/user" 17 17 "code.gitea.io/gitea/modules/git" 18 - "code.gitea.io/gitea/modules/gitrepo" 19 18 "code.gitea.io/gitea/modules/lfs" 20 19 "code.gitea.io/gitea/modules/log" 21 20 "code.gitea.io/gitea/modules/migration" ··· 97 96 } 98 97 defer gitRepo.Close() 99 98 100 - branch, err := gitrepo.GetDefaultBranch(ctx, repo) 99 + branch, err := gitRepo.GetHEADBranch() 101 100 if err != nil { 102 101 log.Warn("Failed to get the default branch of a migrated wiki repo: %v", err) 103 102 if err := util.RemoveAll(wikiPath); err != nil { ··· 106 105 107 106 return repo, err 108 107 } 109 - repo.WikiBranch = branch 108 + repo.WikiBranch = branch.Name 110 109 111 110 if err := git.WriteCommitGraph(ctx, wikiPath); err != nil { 112 111 return repo, err
+13 -9
tests/integration/migrate_test.go
··· 19 19 "code.gitea.io/gitea/models/unit" 20 20 "code.gitea.io/gitea/models/unittest" 21 21 user_model "code.gitea.io/gitea/models/user" 22 + "code.gitea.io/gitea/modules/optional" 22 23 "code.gitea.io/gitea/modules/setting" 23 24 "code.gitea.io/gitea/modules/structs" 24 25 "code.gitea.io/gitea/modules/test" ··· 119 120 defer test.MockVariableValue(&setting.AppVer, "1.16.0")() 120 121 require.NoError(t, migrations.Init()) 121 122 122 - ownerName := "user2" 123 - repoName := "repo1" 124 - repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: ownerName}) 125 - session := loginUser(t, ownerName) 123 + user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 124 + repo, _, f := tests.CreateDeclarativeRepoWithOptions(t, user, tests.DeclarativeRepoOptions{ 125 + WikiBranch: optional.Some("obscure-name"), 126 + }) 127 + defer f() 128 + 129 + session := loginUser(t, user.Name) 126 130 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeReadMisc) 127 131 128 132 for _, s := range []struct { ··· 134 138 t.Run(s.svc.Name(), func(t *testing.T) { 135 139 defer tests.PrintCurrentTest(t)() 136 140 // Step 0: verify the repo is available 137 - req := NewRequestf(t, "GET", "/%s/%s", ownerName, repoName) 141 + req := NewRequestf(t, "GET", "/%s", repo.FullName()) 138 142 _ = session.MakeRequest(t, req, http.StatusOK) 139 143 // Step 1: get the Gitea migration form 140 144 req = NewRequestf(t, "GET", "/repo/migrate/?service_type=%d", s.svc) ··· 149 153 req = NewRequestWithValues(t, "POST", "/repo/migrate", map[string]string{ 150 154 "_csrf": GetCSRF(t, session, "/repo/migrate"), 151 155 "service": fmt.Sprintf("%d", s.svc), 152 - "clone_addr": fmt.Sprintf("%s%s/%s", u, ownerName, repoName), 156 + "clone_addr": fmt.Sprintf("%s%s", u, repo.FullName()), 153 157 "auth_token": token, 154 158 "issues": "on", 155 159 "wiki": "on", 156 160 "repo_name": migratedRepoName, 157 161 "description": "", 158 - "uid": fmt.Sprintf("%d", repoOwner.ID), 162 + "uid": fmt.Sprintf("%d", user.ID), 159 163 }) 160 164 resp = session.MakeRequest(t, req, http.StatusSeeOther) 161 165 // Step 5: a redirection displays the migrated repository 162 - assert.EqualValues(t, fmt.Sprintf("/%s/%s", ownerName, migratedRepoName), test.RedirectURL(resp)) 166 + assert.EqualValues(t, fmt.Sprintf("/%s/%s", user.Name, migratedRepoName), test.RedirectURL(resp)) 163 167 // Step 6: check the repo was created and load the repo 164 - migratedRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{Name: migratedRepoName}) 168 + migratedRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{Name: migratedRepoName, WikiBranch: "obscure-name"}) 165 169 // Step 7: check if the wiki is enabled 166 170 assert.True(t, migratedRepo.UnitEnabled(db.DefaultContext, unit.TypeWiki)) 167 171 })