Skip to content

Commit 4ca1d75

Browse files
lunnydelvh
andauthored
Move some helper files out of models (#19355)
* Move some helper files out of models * Some improvements Co-authored-by: delvh <[email protected]>
1 parent d483407 commit 4ca1d75

File tree

23 files changed

+108
-107
lines changed

23 files changed

+108
-107
lines changed

cmd/hook.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import (
1515
"strings"
1616
"time"
1717

18-
"code.gitea.io/gitea/models"
1918
"code.gitea.io/gitea/modules/git"
2019
"code.gitea.io/gitea/modules/private"
20+
repo_module "code.gitea.io/gitea/modules/repository"
2121
"code.gitea.io/gitea/modules/setting"
2222
"code.gitea.io/gitea/modules/util"
2323

@@ -162,7 +162,7 @@ func (n *nilWriter) WriteString(s string) (int, error) {
162162
}
163163

164164
func runHookPreReceive(c *cli.Context) error {
165-
if os.Getenv(models.EnvIsInternal) == "true" {
165+
if isInternal, _ := strconv.ParseBool(os.Getenv(repo_module.EnvIsInternal)); isInternal {
166166
return nil
167167
}
168168
ctx, cancel := installSignals()
@@ -180,12 +180,12 @@ Gitea or set your environment appropriately.`, "")
180180
}
181181

182182
// the environment is set by serv command
183-
isWiki := os.Getenv(models.EnvRepoIsWiki) == "true"
184-
username := os.Getenv(models.EnvRepoUsername)
185-
reponame := os.Getenv(models.EnvRepoName)
186-
userID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64)
187-
prID, _ := strconv.ParseInt(os.Getenv(models.EnvPRID), 10, 64)
188-
deployKeyID, _ := strconv.ParseInt(os.Getenv(models.EnvDeployKeyID), 10, 64)
183+
isWiki, _ := strconv.ParseBool(os.Getenv(repo_module.EnvRepoIsWiki))
184+
username := os.Getenv(repo_module.EnvRepoUsername)
185+
reponame := os.Getenv(repo_module.EnvRepoName)
186+
userID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64)
187+
prID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPRID), 10, 64)
188+
deployKeyID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvDeployKeyID), 10, 64)
189189

190190
hookOptions := private.HookOptions{
191191
UserID: userID,
@@ -314,7 +314,7 @@ func runHookPostReceive(c *cli.Context) error {
314314
}
315315

316316
// Now if we're an internal don't do anything else
317-
if os.Getenv(models.EnvIsInternal) == "true" {
317+
if isInternal, _ := strconv.ParseBool(os.Getenv(repo_module.EnvIsInternal)); isInternal {
318318
return nil
319319
}
320320

@@ -343,11 +343,11 @@ Gitea or set your environment appropriately.`, "")
343343
}
344344

345345
// the environment is set by serv command
346-
repoUser := os.Getenv(models.EnvRepoUsername)
347-
isWiki := os.Getenv(models.EnvRepoIsWiki) == "true"
348-
repoName := os.Getenv(models.EnvRepoName)
349-
pusherID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64)
350-
pusherName := os.Getenv(models.EnvPusherName)
346+
repoUser := os.Getenv(repo_module.EnvRepoUsername)
347+
isWiki, _ := strconv.ParseBool(os.Getenv(repo_module.EnvRepoIsWiki))
348+
repoName := os.Getenv(repo_module.EnvRepoName)
349+
pusherID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64)
350+
pusherName := os.Getenv(repo_module.EnvPusherName)
351351

352352
hookOptions := private.HookOptions{
353353
UserName: pusherName,
@@ -503,10 +503,10 @@ Gitea or set your environment appropriately.`, "")
503503
}
504504

505505
reader := bufio.NewReader(os.Stdin)
506-
repoUser := os.Getenv(models.EnvRepoUsername)
507-
repoName := os.Getenv(models.EnvRepoName)
508-
pusherID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64)
509-
pusherName := os.Getenv(models.EnvPusherName)
506+
repoUser := os.Getenv(repo_module.EnvRepoUsername)
507+
repoName := os.Getenv(repo_module.EnvRepoName)
508+
pusherID, _ := strconv.ParseInt(os.Getenv(repo_module.EnvPusherID), 10, 64)
509+
pusherName := os.Getenv(repo_module.EnvPusherName)
510510

511511
// 1. Version and features negotiation.
512512
// S: PKT-LINE(version=1\0push-options atomic...) / PKT-LINE(version=1\n)

cmd/serv.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"code.gitea.io/gitea/modules/log"
2525
"code.gitea.io/gitea/modules/pprof"
2626
"code.gitea.io/gitea/modules/private"
27+
repo_module "code.gitea.io/gitea/modules/repository"
2728
"code.gitea.io/gitea/modules/setting"
2829
"code.gitea.io/gitea/services/lfs"
2930

@@ -235,17 +236,17 @@ func runServ(c *cli.Context) error {
235236
}
236237
return fail("Internal Server Error", "%s", err.Error())
237238
}
238-
os.Setenv(models.EnvRepoIsWiki, strconv.FormatBool(results.IsWiki))
239-
os.Setenv(models.EnvRepoName, results.RepoName)
240-
os.Setenv(models.EnvRepoUsername, results.OwnerName)
241-
os.Setenv(models.EnvPusherName, results.UserName)
242-
os.Setenv(models.EnvPusherEmail, results.UserEmail)
243-
os.Setenv(models.EnvPusherID, strconv.FormatInt(results.UserID, 10))
244-
os.Setenv(models.EnvRepoID, strconv.FormatInt(results.RepoID, 10))
245-
os.Setenv(models.EnvPRID, fmt.Sprintf("%d", 0))
246-
os.Setenv(models.EnvDeployKeyID, fmt.Sprintf("%d", results.DeployKeyID))
247-
os.Setenv(models.EnvKeyID, fmt.Sprintf("%d", results.KeyID))
248-
os.Setenv(models.EnvAppURL, setting.AppURL)
239+
os.Setenv(repo_module.EnvRepoIsWiki, strconv.FormatBool(results.IsWiki))
240+
os.Setenv(repo_module.EnvRepoName, results.RepoName)
241+
os.Setenv(repo_module.EnvRepoUsername, results.OwnerName)
242+
os.Setenv(repo_module.EnvPusherName, results.UserName)
243+
os.Setenv(repo_module.EnvPusherEmail, results.UserEmail)
244+
os.Setenv(repo_module.EnvPusherID, strconv.FormatInt(results.UserID, 10))
245+
os.Setenv(repo_module.EnvRepoID, strconv.FormatInt(results.RepoID, 10))
246+
os.Setenv(repo_module.EnvPRID, fmt.Sprintf("%d", 0))
247+
os.Setenv(repo_module.EnvDeployKeyID, fmt.Sprintf("%d", results.DeployKeyID))
248+
os.Setenv(repo_module.EnvKeyID, fmt.Sprintf("%d", results.KeyID))
249+
os.Setenv(repo_module.EnvAppURL, setting.AppURL)
249250

250251
// LFS token authentication
251252
if verb == lfsAuthenticateVerb {

contrib/pr/checkout.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ import (
2424
"strconv"
2525
"time"
2626

27-
"code.gitea.io/gitea/models"
2827
"code.gitea.io/gitea/models/db"
2928
"code.gitea.io/gitea/models/unittest"
3029
gitea_git "code.gitea.io/gitea/modules/git"
3130
"code.gitea.io/gitea/modules/markup"
3231
"code.gitea.io/gitea/modules/markup/external"
32+
repo_module "code.gitea.io/gitea/modules/repository"
3333
"code.gitea.io/gitea/modules/setting"
3434
"code.gitea.io/gitea/modules/util"
3535
"code.gitea.io/gitea/routers"
@@ -111,7 +111,7 @@ func runPR() {
111111
}
112112
unittest.LoadFixtures()
113113
util.RemoveAll(setting.RepoRootPath)
114-
util.RemoveAll(models.LocalCopyPath())
114+
util.RemoveAll(repo_module.LocalCopyPath())
115115
unittest.CopyDir(path.Join(curDir, "integrations/gitea-repositories-meta"), setting.RepoRootPath)
116116

117117
log.Printf("[PR] Setting up router\n")

integrations/integration_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ import (
2424
"testing"
2525
"time"
2626

27-
"code.gitea.io/gitea/models"
2827
"code.gitea.io/gitea/models/unittest"
2928
"code.gitea.io/gitea/modules/base"
3029
"code.gitea.io/gitea/modules/git"
3130
"code.gitea.io/gitea/modules/graceful"
3231
"code.gitea.io/gitea/modules/json"
3332
"code.gitea.io/gitea/modules/log"
3433
"code.gitea.io/gitea/modules/queue"
34+
repo_module "code.gitea.io/gitea/modules/repository"
3535
"code.gitea.io/gitea/modules/setting"
3636
"code.gitea.io/gitea/modules/storage"
3737
"code.gitea.io/gitea/modules/util"
@@ -173,7 +173,7 @@ func initIntegrationTest() {
173173
setting.SetCustomPathAndConf("", "", "")
174174
setting.LoadForTest()
175175
setting.Repository.DefaultBranch = "master" // many test code still assume that default branch is called "master"
176-
_ = util.RemoveAll(models.LocalCopyPath())
176+
_ = util.RemoveAll(repo_module.LocalCopyPath())
177177
git.CheckLFSVersion()
178178
setting.InitDBConfig()
179179
if err := storage.Init(); err != nil {

models/helper.go

Lines changed: 0 additions & 17 deletions
This file was deleted.

models/repo.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,6 @@ var ItemsPerPage = 40
4343
// NewRepoContext creates a new repository context
4444
func NewRepoContext() {
4545
unit.LoadUnitConfig()
46-
47-
admin_model.RemoveAllWithNotice(db.DefaultContext, "Clean up temporary repository uploads", setting.Repository.Upload.TempPath)
48-
admin_model.RemoveAllWithNotice(db.DefaultContext, "Clean up temporary repositories", LocalCopyPath())
4946
}
5047

5148
// CheckRepoUnitUser check whether user could visit the unit of this repository
@@ -527,7 +524,8 @@ func DecrementRepoForkNum(ctx context.Context, repoID int64) error {
527524
return err
528525
}
529526

530-
func updateRepository(ctx context.Context, repo *repo_model.Repository, visibilityChanged bool) (err error) {
527+
// UpdateRepositoryCtx updates a repository with db context
528+
func UpdateRepositoryCtx(ctx context.Context, repo *repo_model.Repository, visibilityChanged bool) (err error) {
531529
repo.LowerName = strings.ToLower(repo.Name)
532530

533531
if utf8.RuneCountInString(repo.Description) > 255 {
@@ -579,7 +577,7 @@ func updateRepository(ctx context.Context, repo *repo_model.Repository, visibili
579577
}
580578
for i := range forkRepos {
581579
forkRepos[i].IsPrivate = repo.IsPrivate || repo.Owner.Visibility == api.VisibleTypePrivate
582-
if err = updateRepository(ctx, forkRepos[i], true); err != nil {
580+
if err = UpdateRepositoryCtx(ctx, forkRepos[i], true); err != nil {
583581
return fmt.Errorf("updateRepository[%d]: %v", forkRepos[i].ID, err)
584582
}
585583
}
@@ -588,11 +586,6 @@ func updateRepository(ctx context.Context, repo *repo_model.Repository, visibili
588586
return nil
589587
}
590588

591-
// UpdateRepositoryCtx updates a repository with db context
592-
func UpdateRepositoryCtx(ctx context.Context, repo *repo_model.Repository, visibilityChanged bool) error {
593-
return updateRepository(ctx, repo, visibilityChanged)
594-
}
595-
596589
// UpdateRepository updates a repository
597590
func UpdateRepository(repo *repo_model.Repository, visibilityChanged bool) (err error) {
598591
ctx, committer, err := db.TxContext()
@@ -601,7 +594,7 @@ func UpdateRepository(repo *repo_model.Repository, visibilityChanged bool) (err
601594
}
602595
defer committer.Close()
603596

604-
if err = updateRepository(ctx, repo, visibilityChanged); err != nil {
597+
if err = UpdateRepositoryCtx(ctx, repo, visibilityChanged); err != nil {
605598
return fmt.Errorf("updateRepository: %v", err)
606599
}
607600

models/repo_list.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ func (repos RepositoryList) Swap(i, j int) {
4242
repos[i], repos[j] = repos[j], repos[i]
4343
}
4444

45+
// FIXME: Remove in favor of maps.values when MIN_GO_VERSION >= 1.18
46+
func valuesRepository(m map[int64]*repo_model.Repository) []*repo_model.Repository {
47+
values := make([]*repo_model.Repository, 0, len(m))
48+
for _, v := range m {
49+
values = append(values, v)
50+
}
51+
return values
52+
}
53+
4554
// RepositoryListOfMap make list from values of map
4655
func RepositoryListOfMap(repoMap map[int64]*repo_model.Repository) RepositoryList {
4756
return RepositoryList(valuesRepository(repoMap))

models/helper_environment.go renamed to modules/repository/env.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a MIT-style
33
// license that can be found in the LICENSE file.
44

5-
package models
5+
package repository
66

77
import (
88
"fmt"

modules/repository/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ func initRepoCommit(ctx context.Context, tmpPath string, repo *repo_model.Reposi
360360

361361
if stdout, _, err := git.NewCommand(ctx, "push", "origin", "HEAD:"+defaultBranch).
362362
SetDescription(fmt.Sprintf("initRepoCommit (git push): %s", tmpPath)).
363-
RunStdString(&git.RunOpts{Dir: tmpPath, Env: models.InternalPushingEnvironment(u, repo)}); err != nil {
363+
RunStdString(&git.RunOpts{Dir: tmpPath, Env: InternalPushingEnvironment(u, repo)}); err != nil {
364364
log.Error("Failed to push back to HEAD: Stdout: %s\nError: %v", stdout, err)
365365
return fmt.Errorf("git push: %v", err)
366366
}

models/helper_directory.go renamed to modules/repository/temp.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a MIT-style
33
// license that can be found in the LICENSE file.
44

5-
package models
5+
package repository
66

77
import (
88
"fmt"

routers/init.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func mustInitCtx(ctx context.Context, fn func(ctx context.Context) error) {
7373
func InitGitServices() {
7474
setting.NewServices()
7575
mustInit(storage.Init)
76-
mustInit(repo_service.NewContext)
76+
mustInit(repo_service.Init)
7777
}
7878

7979
func syncAppPathForGit(ctx context.Context) error {
@@ -116,7 +116,9 @@ func GlobalInitInstalled(ctx context.Context) {
116116
// Setup i18n
117117
translation.InitLocales()
118118

119-
InitGitServices()
119+
setting.NewServices()
120+
mustInit(storage.Init)
121+
120122
mailer.NewContext()
121123
mustInit(cache.NewContext)
122124
notification.NewContext()
@@ -138,6 +140,7 @@ func GlobalInitInstalled(ctx context.Context) {
138140
mustInit(oauth2.Init)
139141

140142
models.NewRepoContext()
143+
mustInit(repo_service.Init)
141144

142145
// Booting long running goroutines.
143146
cron.NewContext(ctx)

routers/web/repo/branch.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ func RestoreBranchPost(ctx *context.Context) {
129129
if err := git.Push(ctx, ctx.Repo.Repository.RepoPath(), git.PushOptions{
130130
Remote: ctx.Repo.Repository.RepoPath(),
131131
Branch: fmt.Sprintf("%s:%s%s", deletedBranch.Commit, git.BranchPrefix, deletedBranch.Name),
132-
Env: models.PushingEnvironment(ctx.Doer, ctx.Repo.Repository),
132+
Env: repo_module.PushingEnvironment(ctx.Doer, ctx.Repo.Repository),
133133
}); err != nil {
134134
if strings.Contains(err.Error(), "already exists") {
135135
log.Debug("RestoreBranch: Can't restore branch '%s', since one with same name already exist", deletedBranch.Name)

routers/web/repo/http.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"code.gitea.io/gitea/modules/context"
2828
"code.gitea.io/gitea/modules/git"
2929
"code.gitea.io/gitea/modules/log"
30+
repo_module "code.gitea.io/gitea/modules/repository"
3031
"code.gitea.io/gitea/modules/setting"
3132
"code.gitea.io/gitea/modules/structs"
3233
"code.gitea.io/gitea/modules/util"
@@ -204,21 +205,21 @@ func httpBase(ctx *context.Context) (h *serviceHandler) {
204205
}
205206

206207
environ = []string{
207-
models.EnvRepoUsername + "=" + username,
208-
models.EnvRepoName + "=" + reponame,
209-
models.EnvPusherName + "=" + ctx.Doer.Name,
210-
models.EnvPusherID + fmt.Sprintf("=%d", ctx.Doer.ID),
211-
models.EnvAppURL + "=" + setting.AppURL,
208+
repo_module.EnvRepoUsername + "=" + username,
209+
repo_module.EnvRepoName + "=" + reponame,
210+
repo_module.EnvPusherName + "=" + ctx.Doer.Name,
211+
repo_module.EnvPusherID + fmt.Sprintf("=%d", ctx.Doer.ID),
212+
repo_module.EnvAppURL + "=" + setting.AppURL,
212213
}
213214

214215
if !ctx.Doer.KeepEmailPrivate {
215-
environ = append(environ, models.EnvPusherEmail+"="+ctx.Doer.Email)
216+
environ = append(environ, repo_module.EnvPusherEmail+"="+ctx.Doer.Email)
216217
}
217218

218219
if isWiki {
219-
environ = append(environ, models.EnvRepoIsWiki+"=true")
220+
environ = append(environ, repo_module.EnvRepoIsWiki+"=true")
220221
} else {
221-
environ = append(environ, models.EnvRepoIsWiki+"=false")
222+
environ = append(environ, repo_module.EnvRepoIsWiki+"=false")
222223
}
223224
}
224225

@@ -269,7 +270,7 @@ func httpBase(ctx *context.Context) (h *serviceHandler) {
269270
}
270271
}
271272

272-
environ = append(environ, models.EnvRepoID+fmt.Sprintf("=%d", repo.ID))
273+
environ = append(environ, repo_module.EnvRepoID+fmt.Sprintf("=%d", repo.ID))
273274

274275
w := ctx.Resp
275276
r := ctx.Req

routers/web/repo/lfs.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"code.gitea.io/gitea/modules/git/pipeline"
2424
"code.gitea.io/gitea/modules/lfs"
2525
"code.gitea.io/gitea/modules/log"
26+
repo_module "code.gitea.io/gitea/modules/repository"
2627
"code.gitea.io/gitea/modules/setting"
2728
"code.gitea.io/gitea/modules/storage"
2829
"code.gitea.io/gitea/modules/typesniffer"
@@ -103,14 +104,14 @@ func LFSLocks(ctx *context.Context) {
103104
}
104105

105106
// Clone base repo.
106-
tmpBasePath, err := models.CreateTemporaryPath("locks")
107+
tmpBasePath, err := repo_module.CreateTemporaryPath("locks")
107108
if err != nil {
108109
log.Error("Failed to create temporary path: %v", err)
109110
ctx.ServerError("LFSLocks", err)
110111
return
111112
}
112113
defer func() {
113-
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil {
114+
if err := repo_module.RemoveTemporaryPath(tmpBasePath); err != nil {
114115
log.Error("LFSLocks: RemoveTemporaryPath: %v", err)
115116
}
116117
}()

0 commit comments

Comments
 (0)