From 7a550b3af20dad94cf468012a6b817b43b91c1ba Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Tue, 22 Mar 2022 23:22:54 +0800 Subject: [PATCH] Use `ctx` instead of `db.DefaultContext` in some packages(routers/services/modules) (#19163) * Remove `db.DefaultContext` usage in routers, use `ctx` directly * Use `ctx` directly if there is one, remove some `db.DefaultContext` in `services` * Use ctx instead of db.DefaultContext for `cmd` and some `modules` packages * fix incorrect context usage --- cmd/admin.go | 2 +- modules/context/repo.go | 7 +++---- modules/doctor/checkOldArchives.go | 2 +- modules/doctor/fix16961.go | 2 +- modules/doctor/mergebase.go | 8 ++++---- modules/doctor/misc.go | 12 ++++++------ modules/repository/repo.go | 2 +- modules/test/context_tests.go | 3 +-- routers/api/v1/org/org.go | 2 +- routers/api/v1/repo/issue_stopwatch.go | 5 ++--- routers/api/v1/repo/key.go | 2 +- routers/api/v1/repo/repo.go | 2 +- routers/api/v1/user/gpg_key.go | 2 +- routers/api/v1/user/repo.go | 3 +-- routers/api/v1/utils/hook.go | 3 +-- routers/web/auth/auth.go | 10 +++++----- routers/web/auth/oauth.go | 5 ++--- routers/web/auth/password.go | 5 ++--- routers/web/org/org_labels.go | 2 +- routers/web/repo/compare.go | 3 +-- routers/web/repo/http.go | 3 +-- routers/web/repo/issue.go | 2 +- routers/web/repo/issue_content_history.go | 11 +++++------ routers/web/repo/issue_label.go | 2 +- routers/web/repo/pull.go | 4 ++-- routers/web/repo/repo.go | 8 ++++---- routers/web/repo/setting.go | 6 +++--- routers/web/repo/view.go | 4 ++-- routers/web/repo/webhook.go | 23 +++++++++++----------- routers/web/user/home.go | 4 ++-- routers/web/user/setting/account.go | 3 +-- routers/web/user/setting/keys.go | 2 +- routers/web/user/setting/profile.go | 2 +- services/asymkey/sign.go | 8 ++++---- services/auth/source/ldap/source_sync.go | 2 +- services/mailer/mail.go | 2 ++ services/mailer/mail_issue.go | 4 ++-- services/mailer/mail_release.go | 3 +-- services/mailer/mail_test.go | 24 +++++++++++++++-------- services/migrations/gitea_uploader.go | 2 +- services/mirror/mirror_pull.go | 3 +-- services/pull/check.go | 3 +-- services/pull/merge.go | 5 ++--- services/pull/pull.go | 2 +- services/pull/review.go | 2 +- services/pull/temp_repo.go | 5 ++--- services/release/release.go | 4 ++-- services/repository/check.go | 8 ++++---- services/repository/hooks.go | 2 +- services/repository/push.go | 2 +- services/user/user.go | 4 ++-- 51 files changed, 117 insertions(+), 124 deletions(-) diff --git a/cmd/admin.go b/cmd/admin.go index 70d44c39e..52081348a 100644 --- a/cmd/admin.go +++ b/cmd/admin.go @@ -493,7 +493,7 @@ func runChangePassword(c *cli.Context) error { return err } - if err = user_model.UpdateUserCols(db.DefaultContext, user, "passwd", "passwd_hash_algo", "salt"); err != nil { + if err = user_model.UpdateUserCols(ctx, user, "passwd", "passwd_hash_algo", "salt"); err != nil { return err } diff --git a/modules/context/repo.go b/modules/context/repo.go index d64380dd9..f8b07ffb0 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -15,7 +15,6 @@ import ( "strings" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" unit_model "code.gitea.io/gitea/models/unit" user_model "code.gitea.io/gitea/models/user" @@ -256,7 +255,7 @@ func RetrieveBaseRepo(ctx *Context, repo *repo_model.Repository) { } ctx.ServerError("GetBaseRepo", err) return - } else if err = repo.BaseRepo.GetOwner(db.DefaultContext); err != nil { + } else if err = repo.BaseRepo.GetOwner(ctx); err != nil { ctx.ServerError("BaseRepo.GetOwner", err) return } @@ -273,7 +272,7 @@ func RetrieveTemplateRepo(ctx *Context, repo *repo_model.Repository) { } ctx.ServerError("GetTemplateRepo", err) return - } else if err = templateRepo.GetOwner(db.DefaultContext); err != nil { + } else if err = templateRepo.GetOwner(ctx); err != nil { ctx.ServerError("TemplateRepo.GetOwner", err) return } @@ -341,7 +340,7 @@ func RedirectToRepo(ctx *Context, redirectRepoID int64) { func repoAssignment(ctx *Context, repo *repo_model.Repository) { var err error - if err = repo.GetOwner(db.DefaultContext); err != nil { + if err = repo.GetOwner(ctx); err != nil { ctx.ServerError("GetOwner", err) return } diff --git a/modules/doctor/checkOldArchives.go b/modules/doctor/checkOldArchives.go index 6353eaddd..cefb3817b 100644 --- a/modules/doctor/checkOldArchives.go +++ b/modules/doctor/checkOldArchives.go @@ -17,7 +17,7 @@ import ( func checkOldArchives(ctx context.Context, logger log.Logger, autofix bool) error { numRepos := 0 numReposUpdated := 0 - err := iterateRepositories(func(repo *repo_model.Repository) error { + err := iterateRepositories(ctx, func(repo *repo_model.Repository) error { if repo.IsEmpty { return nil } diff --git a/modules/doctor/fix16961.go b/modules/doctor/fix16961.go index e24183806..92c77ba80 100644 --- a/modules/doctor/fix16961.go +++ b/modules/doctor/fix16961.go @@ -268,7 +268,7 @@ func fixBrokenRepoUnits16961(ctx context.Context, logger log.Logger, autofix boo count := 0 err := db.Iterate( - db.DefaultContext, + ctx, new(RepoUnit), builder.Gt{ "id": 0, diff --git a/modules/doctor/mergebase.go b/modules/doctor/mergebase.go index a655826e1..5a780ed2a 100644 --- a/modules/doctor/mergebase.go +++ b/modules/doctor/mergebase.go @@ -18,9 +18,9 @@ import ( "xorm.io/builder" ) -func iteratePRs(repo *repo_model.Repository, each func(*repo_model.Repository, *models.PullRequest) error) error { +func iteratePRs(ctx context.Context, repo *repo_model.Repository, each func(*repo_model.Repository, *models.PullRequest) error) error { return db.Iterate( - db.DefaultContext, + ctx, new(models.PullRequest), builder.Eq{"base_repo_id": repo.ID}, func(idx int, bean interface{}) error { @@ -33,9 +33,9 @@ func checkPRMergeBase(ctx context.Context, logger log.Logger, autofix bool) erro numRepos := 0 numPRs := 0 numPRsUpdated := 0 - err := iterateRepositories(func(repo *repo_model.Repository) error { + err := iterateRepositories(ctx, func(repo *repo_model.Repository) error { numRepos++ - return iteratePRs(repo, func(repo *repo_model.Repository, pr *models.PullRequest) error { + return iteratePRs(ctx, repo, func(repo *repo_model.Repository, pr *models.PullRequest) error { numPRs++ pr.BaseRepo = repo repoPath := repo.RepoPath() diff --git a/modules/doctor/misc.go b/modules/doctor/misc.go index 2f6baa814..e96890fba 100644 --- a/modules/doctor/misc.go +++ b/modules/doctor/misc.go @@ -27,9 +27,9 @@ import ( "xorm.io/builder" ) -func iterateRepositories(each func(*repo_model.Repository) error) error { +func iterateRepositories(ctx context.Context, each func(*repo_model.Repository) error) error { err := db.Iterate( - db.DefaultContext, + ctx, new(repo_model.Repository), builder.Gt{"id": 0}, func(idx int, bean interface{}) error { @@ -50,7 +50,7 @@ func checkScriptType(ctx context.Context, logger log.Logger, autofix bool) error } func checkHooks(ctx context.Context, logger log.Logger, autofix bool) error { - if err := iterateRepositories(func(repo *repo_model.Repository) error { + if err := iterateRepositories(ctx, func(repo *repo_model.Repository) error { results, err := repository.CheckDelegateHooks(repo.RepoPath()) if err != nil { logger.Critical("Unable to check delegate hooks for repo %-v. ERROR: %v", repo, err) @@ -86,7 +86,7 @@ func checkEnablePushOptions(ctx context.Context, logger log.Logger, autofix bool numRepos := 0 numNeedUpdate := 0 - if err := iterateRepositories(func(repo *repo_model.Repository) error { + if err := iterateRepositories(ctx, func(repo *repo_model.Repository) error { numRepos++ r, err := git.OpenRepositoryCtx(git.DefaultContext, repo.RepoPath()) if err != nil { @@ -132,13 +132,13 @@ func checkDaemonExport(ctx context.Context, logger log.Logger, autofix bool) err logger.Critical("Unable to create cache: %v", err) return err } - if err := iterateRepositories(func(repo *repo_model.Repository) error { + if err := iterateRepositories(ctx, func(repo *repo_model.Repository) error { numRepos++ if owner, has := cache.Get(repo.OwnerID); has { repo.Owner = owner.(*user_model.User) } else { - if err := repo.GetOwner(db.DefaultContext); err != nil { + if err := repo.GetOwner(ctx); err != nil { return err } cache.Add(repo.OwnerID, repo.Owner) diff --git a/modules/repository/repo.go b/modules/repository/repo.go index 13710bd4a..98388bbd7 100644 --- a/modules/repository/repo.go +++ b/modules/repository/repo.go @@ -156,7 +156,7 @@ func MigrateRepositoryGitData(ctx context.Context, u *user_model.User, } } - if err = models.UpdateRepoSize(db.DefaultContext, repo); err != nil { + if err = models.UpdateRepoSize(ctx, repo); err != nil { log.Error("Failed to update size for repository: %v", err) } diff --git a/modules/test/context_tests.go b/modules/test/context_tests.go index e5cea26eb..e43f0429e 100644 --- a/modules/test/context_tests.go +++ b/modules/test/context_tests.go @@ -14,7 +14,6 @@ import ( "testing" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unittest" user_model "code.gitea.io/gitea/models/user" @@ -87,7 +86,7 @@ func LoadUser(t *testing.T, ctx *context.Context, userID int64) { // LoadGitRepo load a git repo into a test context. Requires that ctx.Repo has // already been populated. func LoadGitRepo(t *testing.T, ctx *context.Context) { - assert.NoError(t, ctx.Repo.Repository.GetOwner(db.DefaultContext)) + assert.NoError(t, ctx.Repo.Repository.GetOwner(ctx)) var err error ctx.Repo.GitRepo, err = git.OpenRepositoryCtx(ctx, ctx.Repo.Repository.RepoPath()) assert.NoError(t, err) diff --git a/routers/api/v1/org/org.go b/routers/api/v1/org/org.go index a920b49a8..63cc0e9d3 100644 --- a/routers/api/v1/org/org.go +++ b/routers/api/v1/org/org.go @@ -346,7 +346,7 @@ func Edit(ctx *context.APIContext) { if form.RepoAdminChangeTeamAccess != nil { org.RepoAdminChangeTeamAccess = *form.RepoAdminChangeTeamAccess } - if err := user_model.UpdateUserCols(db.DefaultContext, org.AsUser(), + if err := user_model.UpdateUserCols(ctx, org.AsUser(), "full_name", "description", "website", "location", "visibility", "repo_admin_change_team_access", ); err != nil { diff --git a/routers/api/v1/repo/issue_stopwatch.go b/routers/api/v1/repo/issue_stopwatch.go index 19ee983b8..382f29434 100644 --- a/routers/api/v1/repo/issue_stopwatch.go +++ b/routers/api/v1/repo/issue_stopwatch.go @@ -9,7 +9,6 @@ import ( "net/http" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/convert" "code.gitea.io/gitea/routers/api/v1/utils" @@ -56,7 +55,7 @@ func StartIssueStopwatch(ctx *context.APIContext) { return } - if err := models.CreateIssueStopwatch(db.DefaultContext, ctx.Doer, issue); err != nil { + if err := models.CreateIssueStopwatch(ctx, ctx.Doer, issue); err != nil { ctx.Error(http.StatusInternalServerError, "CreateOrStopIssueStopwatch", err) return } @@ -105,7 +104,7 @@ func StopIssueStopwatch(ctx *context.APIContext) { return } - if err := models.FinishIssueStopwatch(db.DefaultContext, ctx.Doer, issue); err != nil { + if err := models.FinishIssueStopwatch(ctx, ctx.Doer, issue); err != nil { ctx.Error(http.StatusInternalServerError, "CreateOrStopIssueStopwatch", err) return } diff --git a/routers/api/v1/repo/key.go b/routers/api/v1/repo/key.go index 568f92d7f..0c780eb97 100644 --- a/routers/api/v1/repo/key.go +++ b/routers/api/v1/repo/key.go @@ -87,7 +87,7 @@ func ListDeployKeys(ctx *context.APIContext) { Fingerprint: ctx.FormString("fingerprint"), } - keys, err := asymkey_model.ListDeployKeys(db.DefaultContext, opts) + keys, err := asymkey_model.ListDeployKeys(ctx, opts) if err != nil { ctx.InternalServerError(err) return diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 3bb32d75d..d266b3f4f 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -217,7 +217,7 @@ func Search(ctx *context.APIContext) { results := make([]*api.Repository, len(repos)) for i, repo := range repos { - if err = repo.GetOwner(db.DefaultContext); err != nil { + if err = repo.GetOwner(ctx); err != nil { ctx.JSON(http.StatusInternalServerError, api.SearchError{ OK: false, Error: err.Error(), diff --git a/routers/api/v1/user/gpg_key.go b/routers/api/v1/user/gpg_key.go index 5e98b21fb..83122355d 100644 --- a/routers/api/v1/user/gpg_key.go +++ b/routers/api/v1/user/gpg_key.go @@ -18,7 +18,7 @@ import ( ) func listGPGKeys(ctx *context.APIContext, uid int64, listOptions db.ListOptions) { - keys, err := asymkey_model.ListGPGKeys(db.DefaultContext, uid, listOptions) + keys, err := asymkey_model.ListGPGKeys(ctx, uid, listOptions) if err != nil { ctx.Error(http.StatusInternalServerError, "ListGPGKeys", err) return diff --git a/routers/api/v1/user/repo.go b/routers/api/v1/user/repo.go index 2b933bea1..683c30095 100644 --- a/routers/api/v1/user/repo.go +++ b/routers/api/v1/user/repo.go @@ -8,7 +8,6 @@ import ( "net/http" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/perm" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/context" @@ -124,7 +123,7 @@ func ListMyRepos(ctx *context.APIContext) { results := make([]*api.Repository, len(repos)) for i, repo := range repos { - if err = repo.GetOwner(db.DefaultContext); err != nil { + if err = repo.GetOwner(ctx); err != nil { ctx.Error(http.StatusInternalServerError, "GetOwner", err) return } diff --git a/routers/api/v1/utils/hook.go b/routers/api/v1/utils/hook.go index 1f0a35ce2..d4d4e0552 100644 --- a/routers/api/v1/utils/hook.go +++ b/routers/api/v1/utils/hook.go @@ -9,7 +9,6 @@ import ( "net/http" "strings" - "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/webhook" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/convert" @@ -164,7 +163,7 @@ func addHook(ctx *context.APIContext, form *api.CreateHookOption, orgID, repoID if err := w.UpdateEvent(); err != nil { ctx.Error(http.StatusInternalServerError, "UpdateEvent", err) return nil, false - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.Error(http.StatusInternalServerError, "CreateWebhook", err) return nil, false } diff --git a/routers/web/auth/auth.go b/routers/web/auth/auth.go index 556fd26d0..ab538f0e5 100644 --- a/routers/web/auth/auth.go +++ b/routers/web/auth/auth.go @@ -107,7 +107,7 @@ func resetLocale(ctx *context.Context, u *user_model.User) error { // If the user does not have a locale set, we save the current one. if len(u.Language) == 0 { u.Language = ctx.Locale.Language() - if err := user_model.UpdateUserCols(db.DefaultContext, u, "language"); err != nil { + if err := user_model.UpdateUserCols(ctx, u, "language"); err != nil { return err } } @@ -333,7 +333,7 @@ func handleSignInFull(ctx *context.Context, u *user_model.User, remember, obeyRe // If the user does not have a locale set, we save the current one. if len(u.Language) == 0 { u.Language = ctx.Locale.Language() - if err := user_model.UpdateUserCols(db.DefaultContext, u, "language"); err != nil { + if err := user_model.UpdateUserCols(ctx, u, "language"); err != nil { ctx.ServerError("UpdateUserCols Language", fmt.Errorf("Error updating user language [user: %d, locale: %s]", u.ID, u.Language)) return setting.AppSubURL + "/" } @@ -350,7 +350,7 @@ func handleSignInFull(ctx *context.Context, u *user_model.User, remember, obeyRe // Register last login u.SetLastLogin() - if err := user_model.UpdateUserCols(db.DefaultContext, u, "last_login_unix"); err != nil { + if err := user_model.UpdateUserCols(ctx, u, "last_login_unix"); err != nil { ctx.ServerError("UpdateUserCols", err) return setting.AppSubURL + "/" } @@ -606,7 +606,7 @@ func handleUserCreated(ctx *context.Context, u *user_model.User, gothUser *goth. u.IsAdmin = true u.IsActive = true u.SetLastLogin() - if err := user_model.UpdateUserCols(db.DefaultContext, u, "is_admin", "is_active", "last_login_unix"); err != nil { + if err := user_model.UpdateUserCols(ctx, u, "is_admin", "is_active", "last_login_unix"); err != nil { ctx.ServerError("UpdateUser", err) return } @@ -733,7 +733,7 @@ func handleAccountActivation(ctx *context.Context, user *user_model.User) { ctx.ServerError("UpdateUser", err) return } - if err := user_model.UpdateUserCols(db.DefaultContext, user, "is_active", "rands"); err != nil { + if err := user_model.UpdateUserCols(ctx, user, "is_active", "rands"); err != nil { if user_model.IsErrUserNotExist(err) { ctx.NotFound("UpdateUserCols", err) } else { diff --git a/routers/web/auth/oauth.go b/routers/web/auth/oauth.go index 83b58d6cb..847af52bd 100644 --- a/routers/web/auth/oauth.go +++ b/routers/web/auth/oauth.go @@ -16,7 +16,6 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/models/auth" - "code.gitea.io/gitea/models/db" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/context" @@ -1021,7 +1020,7 @@ func handleOAuth2SignIn(ctx *context.Context, source *auth.Source, u *user_model cols = append(cols, "is_admin", "is_restricted") } - if err := user_model.UpdateUserCols(db.DefaultContext, u, cols...); err != nil { + if err := user_model.UpdateUserCols(ctx, u, cols...); err != nil { ctx.ServerError("UpdateUserCols", err) return } @@ -1048,7 +1047,7 @@ func handleOAuth2SignIn(ctx *context.Context, source *auth.Source, u *user_model changed := setUserGroupClaims(source, u, &gothUser) if changed { - if err := user_model.UpdateUserCols(db.DefaultContext, u, "is_admin", "is_restricted"); err != nil { + if err := user_model.UpdateUserCols(ctx, u, "is_admin", "is_restricted"); err != nil { ctx.ServerError("UpdateUserCols", err) return } diff --git a/routers/web/auth/password.go b/routers/web/auth/password.go index 8e309ebb1..d7bf67cff 100644 --- a/routers/web/auth/password.go +++ b/routers/web/auth/password.go @@ -9,7 +9,6 @@ import ( "net/http" "code.gitea.io/gitea/models/auth" - "code.gitea.io/gitea/models/db" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/context" @@ -232,7 +231,7 @@ func ResetPasswdPost(ctx *context.Context) { return } u.MustChangePassword = false - if err := user_model.UpdateUserCols(db.DefaultContext, u, "must_change_password", "passwd", "passwd_hash_algo", "rands", "salt"); err != nil { + if err := user_model.UpdateUserCols(ctx, u, "must_change_password", "passwd", "passwd_hash_algo", "rands", "salt"); err != nil { ctx.ServerError("UpdateUser", err) return } @@ -327,7 +326,7 @@ func MustChangePasswordPost(ctx *context.Context) { u.MustChangePassword = false - if err := user_model.UpdateUserCols(db.DefaultContext, u, "must_change_password", "passwd", "passwd_hash_algo", "salt"); err != nil { + if err := user_model.UpdateUserCols(ctx, u, "must_change_password", "passwd", "passwd_hash_algo", "salt"); err != nil { ctx.ServerError("UpdateUser", err) return } diff --git a/routers/web/org/org_labels.go b/routers/web/org/org_labels.go index 9cc9a9250..0ec6c3ce3 100644 --- a/routers/web/org/org_labels.go +++ b/routers/web/org/org_labels.go @@ -100,7 +100,7 @@ func InitializeLabels(ctx *context.Context) { return } - if err := models.InitializeLabels(db.DefaultContext, ctx.Org.Organization.ID, form.TemplateName, true); err != nil { + if err := models.InitializeLabels(ctx, ctx.Org.Organization.ID, form.TemplateName, true); err != nil { if models.IsErrIssueLabelTemplateLoad(err) { originalErr := err.(models.ErrIssueLabelTemplateLoad).OriginalError ctx.Flash.Error(ctx.Tr("repo.issues.label_templates.fail_to_load_file", form.TemplateName, originalErr)) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index c2ae86d5d..23ec662cf 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -18,7 +18,6 @@ import ( "strings" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unit" user_model "code.gitea.io/gitea/models/user" @@ -269,7 +268,7 @@ func ParseCompareInfo(ctx *context.Context) *CompareInfo { } return nil } - if err := ci.HeadRepo.GetOwner(db.DefaultContext); err != nil { + if err := ci.HeadRepo.GetOwner(ctx); err != nil { if user_model.IsErrUserNotExist(err) { ctx.NotFound("GetUserByName", nil) } else { diff --git a/routers/web/repo/http.go b/routers/web/repo/http.go index b706330d6..0207cd768 100644 --- a/routers/web/repo/http.go +++ b/routers/web/repo/http.go @@ -21,7 +21,6 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/models/auth" - "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/perm" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unit" @@ -159,7 +158,7 @@ func httpBase(ctx *context.Context) (h *serviceHandler) { // don't allow anonymous pulls if organization is not public if isPublicPull { - if err := repo.GetOwner(db.DefaultContext); err != nil { + if err := repo.GetOwner(ctx); err != nil { ctx.ServerError("GetOwner", err) return } diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 18f352265..e51631a72 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -1944,7 +1944,7 @@ func UpdatePullReviewRequest(ctx *context.Context) { } if reviewID < 0 { // negative reviewIDs represent team requests - if err := issue.Repo.GetOwner(db.DefaultContext); err != nil { + if err := issue.Repo.GetOwner(ctx); err != nil { ctx.ServerError("issue.Repo.GetOwner", err) return } diff --git a/routers/web/repo/issue_content_history.go b/routers/web/repo/issue_content_history.go index 0d3b23668..21b22aa71 100644 --- a/routers/web/repo/issue_content_history.go +++ b/routers/web/repo/issue_content_history.go @@ -12,7 +12,6 @@ import ( "strings" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" issuesModel "code.gitea.io/gitea/models/issues" "code.gitea.io/gitea/models/unit" "code.gitea.io/gitea/modules/context" @@ -32,7 +31,7 @@ func GetContentHistoryOverview(ctx *context.Context) { } lang := ctx.Locale.Language() - editedHistoryCountMap, _ := issuesModel.QueryIssueContentHistoryEditedCountMap(db.DefaultContext, issue.ID) + editedHistoryCountMap, _ := issuesModel.QueryIssueContentHistoryEditedCountMap(ctx, issue.ID) ctx.JSON(http.StatusOK, map[string]interface{}{ "i18n": map[string]interface{}{ "textEdited": i18n.Tr(lang, "repo.issues.content_history.edited"), @@ -52,7 +51,7 @@ func GetContentHistoryList(ctx *context.Context) { return } - items, _ := issuesModel.FetchIssueContentHistoryList(db.DefaultContext, issue.ID, commentID) + items, _ := issuesModel.FetchIssueContentHistoryList(ctx, issue.ID, commentID) // render history list to HTML for frontend dropdown items: (name, value) // name is HTML of "avatar + userName + userAction + timeSince" @@ -119,7 +118,7 @@ func GetContentHistoryDetail(ctx *context.Context) { } historyID := ctx.FormInt64("history_id") - history, prevHistory, err := issuesModel.GetIssueContentHistoryAndPrev(db.DefaultContext, historyID) + history, prevHistory, err := issuesModel.GetIssueContentHistoryAndPrev(ctx, historyID) if err != nil { ctx.JSON(http.StatusNotFound, map[string]interface{}{ "message": "Can not find the content history", @@ -196,7 +195,7 @@ func SoftDeleteContentHistory(ctx *context.Context) { return } } - if history, err = issuesModel.GetIssueContentHistoryByID(db.DefaultContext, historyID); err != nil { + if history, err = issuesModel.GetIssueContentHistoryByID(ctx, historyID); err != nil { log.Error("can not get issue content history %v. err=%v", historyID, err) return } @@ -209,7 +208,7 @@ func SoftDeleteContentHistory(ctx *context.Context) { return } - err = issuesModel.SoftDeleteIssueContentHistory(db.DefaultContext, historyID) + err = issuesModel.SoftDeleteIssueContentHistory(ctx, historyID) log.Debug("soft delete issue content history. issue=%d, comment=%d, history=%d", issue.ID, commentID, historyID) ctx.JSON(http.StatusOK, map[string]interface{}{ "ok": err == nil, diff --git a/routers/web/repo/issue_label.go b/routers/web/repo/issue_label.go index d1470910d..ec04fa166 100644 --- a/routers/web/repo/issue_label.go +++ b/routers/web/repo/issue_label.go @@ -39,7 +39,7 @@ func InitializeLabels(ctx *context.Context) { return } - if err := models.InitializeLabels(db.DefaultContext, ctx.Repo.Repository.ID, form.TemplateName, false); err != nil { + if err := models.InitializeLabels(ctx, ctx.Repo.Repository.ID, form.TemplateName, false); err != nil { if models.IsErrIssueLabelTemplateLoad(err) { originalErr := err.(models.ErrIssueLabelTemplateLoad).OriginalError ctx.Flash.Error(ctx.Tr("repo.issues.label_templates.fail_to_load_file", form.TemplateName, originalErr)) diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go index 05c1ab745..a4edfd9ee 100644 --- a/routers/web/repo/pull.go +++ b/routers/web/repo/pull.go @@ -99,7 +99,7 @@ func getForkRepository(ctx *context.Context) *repo_model.Repository { return nil } - if err := forkRepo.GetOwner(db.DefaultContext); err != nil { + if err := forkRepo.GetOwner(ctx); err != nil { ctx.ServerError("GetOwner", err) return nil } @@ -1255,7 +1255,7 @@ func CleanUpPullRequest(ctx *context.Context) { } else if err = pr.LoadBaseRepo(); err != nil { ctx.ServerError("LoadBaseRepo", err) return - } else if err = pr.HeadRepo.GetOwner(db.DefaultContext); err != nil { + } else if err = pr.HeadRepo.GetOwner(ctx); err != nil { ctx.ServerError("HeadRepo.GetOwner", err) return } diff --git a/routers/web/repo/repo.go b/routers/web/repo/repo.go index 7e08a8af0..4e07d4720 100644 --- a/routers/web/repo/repo.go +++ b/routers/web/repo/repo.go @@ -353,7 +353,7 @@ func RedirectDownload(ctx *context.Context) { ) tagNames := []string{vTag} curRepo := ctx.Repo.Repository - releases, err := models.GetReleasesByRepoIDAndNames(db.DefaultContext, curRepo.ID, tagNames) + releases, err := models.GetReleasesByRepoIDAndNames(ctx, curRepo.ID, tagNames) if err != nil { if repo_model.IsErrAttachmentNotExist(err) { ctx.Error(http.StatusNotFound) @@ -394,7 +394,7 @@ func Download(ctx *context.Context) { return } - archiver, err := repo_model.GetRepoArchiver(db.DefaultContext, aReq.RepoID, aReq.Type, aReq.CommitID) + archiver, err := repo_model.GetRepoArchiver(ctx, aReq.RepoID, aReq.Type, aReq.CommitID) if err != nil { ctx.ServerError("models.GetRepoArchiver", err) return @@ -424,7 +424,7 @@ func Download(ctx *context.Context) { return } times++ - archiver, err = repo_model.GetRepoArchiver(db.DefaultContext, aReq.RepoID, aReq.Type, aReq.CommitID) + archiver, err = repo_model.GetRepoArchiver(ctx, aReq.RepoID, aReq.Type, aReq.CommitID) if err != nil { ctx.ServerError("archiver_service.StartArchive", err) return @@ -480,7 +480,7 @@ func InitiateDownload(ctx *context.Context) { return } - archiver, err := repo_model.GetRepoArchiver(db.DefaultContext, aReq.RepoID, aReq.Type, aReq.CommitID) + archiver, err := repo_model.GetRepoArchiver(ctx, aReq.RepoID, aReq.Type, aReq.CommitID) if err != nil { ctx.ServerError("archiver_service.StartArchive", err) return diff --git a/routers/web/repo/setting.go b/routers/web/repo/setting.go index 8c8f627fa..e3a424ea4 100644 --- a/routers/web/repo/setting.go +++ b/routers/web/repo/setting.go @@ -595,7 +595,7 @@ func SettingsPost(ctx *context.Context) { ctx.Error(http.StatusNotFound) return } - if err := repo.GetOwner(db.DefaultContext); err != nil { + if err := repo.GetOwner(ctx); err != nil { ctx.ServerError("Convert Fork", err) return } @@ -1055,7 +1055,7 @@ func DeployKeys(ctx *context.Context) { ctx.Data["PageIsSettingsKeys"] = true ctx.Data["DisableSSH"] = setting.SSH.Disabled - keys, err := asymkey_model.ListDeployKeys(db.DefaultContext, &asymkey_model.ListDeployKeysOptions{RepoID: ctx.Repo.Repository.ID}) + keys, err := asymkey_model.ListDeployKeys(ctx, &asymkey_model.ListDeployKeysOptions{RepoID: ctx.Repo.Repository.ID}) if err != nil { ctx.ServerError("ListDeployKeys", err) return @@ -1071,7 +1071,7 @@ func DeployKeysPost(ctx *context.Context) { ctx.Data["Title"] = ctx.Tr("repo.settings.deploy_keys") ctx.Data["PageIsSettingsKeys"] = true - keys, err := asymkey_model.ListDeployKeys(db.DefaultContext, &asymkey_model.ListDeployKeysOptions{RepoID: ctx.Repo.Repository.ID}) + keys, err := asymkey_model.ListDeployKeys(ctx, &asymkey_model.ListDeployKeysOptions{RepoID: ctx.Repo.Repository.ID}) if err != nil { ctx.ServerError("ListDeployKeys", err) return diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 3bdcefa4c..7fc178cf3 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -884,7 +884,7 @@ func renderCode(ctx *context.Context) { ctx.ServerError("UpdateRepositoryCols", err) return } - if err = models.UpdateRepoSize(db.DefaultContext, ctx.Repo.Repository); err != nil { + if err = models.UpdateRepoSize(ctx, ctx.Repo.Repository); err != nil { ctx.ServerError("UpdateRepoSize", err) return } @@ -1017,7 +1017,7 @@ func Forks(ctx *context.Context) { } for _, fork := range forks { - if err = fork.GetOwner(db.DefaultContext); err != nil { + if err = fork.GetOwner(ctx); err != nil { ctx.ServerError("GetOwner", err) return } diff --git a/routers/web/repo/webhook.go b/routers/web/repo/webhook.go index d457bcb19..7ffea1724 100644 --- a/routers/web/repo/webhook.go +++ b/routers/web/repo/webhook.go @@ -13,7 +13,6 @@ import ( "path" "strings" - "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/perm" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/models/webhook" @@ -227,7 +226,7 @@ func GiteaHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -281,7 +280,7 @@ func newGogsWebhookPost(ctx *context.Context, form forms.NewGogshookForm, kind w if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -333,7 +332,7 @@ func DiscordHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -376,7 +375,7 @@ func DingtalkHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -428,7 +427,7 @@ func TelegramHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -483,7 +482,7 @@ func MatrixHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -526,7 +525,7 @@ func MSTeamsHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -586,7 +585,7 @@ func SlackHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -629,7 +628,7 @@ func FeishuHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -673,7 +672,7 @@ func WechatworkHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } @@ -726,7 +725,7 @@ func PackagistHooksNewPost(ctx *context.Context) { if err := w.UpdateEvent(); err != nil { ctx.ServerError("UpdateEvent", err) return - } else if err := webhook.CreateWebhook(db.DefaultContext, w); err != nil { + } else if err := webhook.CreateWebhook(ctx, w); err != nil { ctx.ServerError("CreateWebhook", err) return } diff --git a/routers/web/user/home.go b/routers/web/user/home.go index 7489f08b1..afdc344b6 100644 --- a/routers/web/user/home.go +++ b/routers/web/user/home.go @@ -74,7 +74,7 @@ func Dashboard(ctx *context.Context) { ctx.Data["Title"] = ctxUser.DisplayName() + " - " + ctx.Tr("dashboard") ctx.Data["PageIsDashboard"] = true ctx.Data["PageIsNews"] = true - cnt, _ := models.GetOrganizationCount(db.DefaultContext, ctxUser) + cnt, _ := models.GetOrganizationCount(ctx, ctxUser) ctx.Data["UserOrgsCount"] = cnt var uid int64 @@ -730,7 +730,7 @@ func ShowSSHKeys(ctx *context.Context, uid int64) { // ShowGPGKeys output all the public GPG keys of user by uid func ShowGPGKeys(ctx *context.Context, uid int64) { - keys, err := asymkey_model.ListGPGKeys(db.DefaultContext, uid, db.ListOptions{}) + keys, err := asymkey_model.ListGPGKeys(ctx, uid, db.ListOptions{}) if err != nil { ctx.ServerError("ListGPGKeys", err) return diff --git a/routers/web/user/setting/account.go b/routers/web/user/setting/account.go index 468d5ca65..a5854991a 100644 --- a/routers/web/user/setting/account.go +++ b/routers/web/user/setting/account.go @@ -11,7 +11,6 @@ import ( "time" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/context" @@ -75,7 +74,7 @@ func AccountPost(ctx *context.Context) { ctx.ServerError("UpdateUser", err) return } - if err := user_model.UpdateUserCols(db.DefaultContext, ctx.Doer, "salt", "passwd_hash_algo", "passwd"); err != nil { + if err := user_model.UpdateUserCols(ctx, ctx.Doer, "salt", "passwd_hash_algo", "passwd"); err != nil { ctx.ServerError("UpdateUser", err) return } diff --git a/routers/web/user/setting/keys.go b/routers/web/user/setting/keys.go index 2cc627ecd..a8d07ea47 100644 --- a/routers/web/user/setting/keys.go +++ b/routers/web/user/setting/keys.go @@ -269,7 +269,7 @@ func loadKeysData(ctx *context.Context) { } ctx.Data["ExternalKeys"] = externalKeys - gpgkeys, err := asymkey_model.ListGPGKeys(db.DefaultContext, ctx.Doer.ID, db.ListOptions{}) + gpgkeys, err := asymkey_model.ListGPGKeys(ctx, ctx.Doer.ID, db.ListOptions{}) if err != nil { ctx.ServerError("ListGPGKeys", err) return diff --git a/routers/web/user/setting/profile.go b/routers/web/user/setting/profile.go index 72cbf33e5..09871ef76 100644 --- a/routers/web/user/setting/profile.go +++ b/routers/web/user/setting/profile.go @@ -185,7 +185,7 @@ func UpdateAvatarSetting(ctx *context.Context, form *forms.AvatarForm, ctxUser * } } - if err := user_model.UpdateUserCols(db.DefaultContext, ctxUser, "avatar", "avatar_email", "use_custom_avatar"); err != nil { + if err := user_model.UpdateUserCols(ctx, ctxUser, "avatar", "avatar_email", "use_custom_avatar"); err != nil { return fmt.Errorf("UpdateUser: %v", err) } diff --git a/services/asymkey/sign.go b/services/asymkey/sign.go index c2c6829d6..fa0afe0a5 100644 --- a/services/asymkey/sign.go +++ b/services/asymkey/sign.go @@ -143,7 +143,7 @@ Loop: case always: break Loop case pubkey: - keys, err := asymkey_model.ListGPGKeys(db.DefaultContext, u.ID, db.ListOptions{}) + keys, err := asymkey_model.ListGPGKeys(ctx, u.ID, db.ListOptions{}) if err != nil { return false, "", nil, err } @@ -179,7 +179,7 @@ Loop: case always: break Loop case pubkey: - keys, err := asymkey_model.ListGPGKeys(db.DefaultContext, u.ID, db.ListOptions{}) + keys, err := asymkey_model.ListGPGKeys(ctx, u.ID, db.ListOptions{}) if err != nil { return false, "", nil, err } @@ -232,7 +232,7 @@ Loop: case always: break Loop case pubkey: - keys, err := asymkey_model.ListGPGKeys(db.DefaultContext, u.ID, db.ListOptions{}) + keys, err := asymkey_model.ListGPGKeys(ctx, u.ID, db.ListOptions{}) if err != nil { return false, "", nil, err } @@ -294,7 +294,7 @@ Loop: case always: break Loop case pubkey: - keys, err := asymkey_model.ListGPGKeys(db.DefaultContext, u.ID, db.ListOptions{}) + keys, err := asymkey_model.ListGPGKeys(ctx, u.ID, db.ListOptions{}) if err != nil { return false, "", nil, err } diff --git a/services/auth/source/ldap/source_sync.go b/services/auth/source/ldap/source_sync.go index 0d4d94a3a..b7ea1f058 100644 --- a/services/auth/source/ldap/source_sync.go +++ b/services/auth/source/ldap/source_sync.go @@ -202,7 +202,7 @@ func (source *Source) Sync(ctx context.Context, updateExisting bool) error { log.Trace("SyncExternalUsers[%s]: Deactivating user %s", source.authSource.Name, usr.Name) usr.IsActive = false - err = user_model.UpdateUserCols(db.DefaultContext, usr, "is_active") + err = user_model.UpdateUserCols(ctx, usr, "is_active") if err != nil { log.Error("SyncExternalUsers[%s]: Error deactivating user %s: %v", source.authSource.Name, usr.Name, err) } diff --git a/services/mailer/mail.go b/services/mailer/mail.go index 8c99b0562..8e04e7e4d 100644 --- a/services/mailer/mail.go +++ b/services/mailer/mail.go @@ -7,6 +7,7 @@ package mailer import ( "bytes" + "context" "fmt" "html/template" "mime" @@ -414,6 +415,7 @@ func SendIssueAssignedMail(issue *models.Issue, doer *user_model.User, content s for lang, tos := range langMap { msgs, err := composeIssueCommentMessages(&mailCommentContext{ + Context: context.TODO(), // TODO: use a correct context Issue: issue, Doer: doer, ActionType: models.ActionType(0), diff --git a/services/mailer/mail_issue.go b/services/mailer/mail_issue.go index 145115034..7f0fb9a3e 100644 --- a/services/mailer/mail_issue.go +++ b/services/mailer/mail_issue.go @@ -9,7 +9,6 @@ import ( "fmt" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unit" user_model "code.gitea.io/gitea/models/user" @@ -81,7 +80,7 @@ func mailIssueCommentToParticipants(ctx *mailCommentContext, mentions []*user_mo // =========== Repo watchers =========== // Make repo watchers last, since it's likely the list with the most users if !(ctx.Issue.IsPull && ctx.Issue.PullRequest.IsWorkInProgress() && ctx.ActionType != models.ActionCreatePullRequest) { - ids, err = repo_model.GetRepoWatchersIDs(db.DefaultContext, ctx.Issue.RepoID) + ids, err = repo_model.GetRepoWatchersIDs(ctx, ctx.Issue.RepoID) if err != nil { return fmt.Errorf("GetRepoWatchersIDs(%d): %v", ctx.Issue.RepoID, err) } @@ -186,6 +185,7 @@ func MailParticipants(issue *models.Issue, doer *user_model.User, opType models. } if err := mailIssueCommentToParticipants( &mailCommentContext{ + Context: context.TODO(), // TODO: use a correct context Issue: issue, Doer: doer, ActionType: opType, diff --git a/services/mailer/mail_release.go b/services/mailer/mail_release.go index 1ca9ad02d..76dceb238 100644 --- a/services/mailer/mail_release.go +++ b/services/mailer/mail_release.go @@ -9,7 +9,6 @@ import ( "context" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/base" @@ -32,7 +31,7 @@ func MailNewRelease(ctx context.Context, rel *models.Release) { return } - watcherIDList, err := repo_model.GetRepoWatchersIDs(db.DefaultContext, rel.RepoID) + watcherIDList, err := repo_model.GetRepoWatchersIDs(ctx, rel.RepoID) if err != nil { log.Error("GetRepoWatchersIDs(%d): %v", rel.RepoID, err) return diff --git a/services/mailer/mail_test.go b/services/mailer/mail_test.go index ba82fc6ff..c06bae1b9 100644 --- a/services/mailer/mail_test.go +++ b/services/mailer/mail_test.go @@ -6,6 +6,7 @@ package mailer import ( "bytes" + "context" "fmt" "html/template" "strings" @@ -70,7 +71,8 @@ func TestComposeIssueCommentMessage(t *testing.T) { recipients := []*user_model.User{{Name: "Test", Email: "test@gitea.com"}, {Name: "Test2", Email: "test2@gitea.com"}} msgs, err := composeIssueCommentMessages(&mailCommentContext{ - Issue: issue, Doer: doer, ActionType: models.ActionCommentIssue, + Context: context.TODO(), // TODO: use a correct context + Issue: issue, Doer: doer, ActionType: models.ActionCommentIssue, Content: "test body", Comment: comment, }, "en-US", recipients, false, "issue comment") assert.NoError(t, err) @@ -99,7 +101,8 @@ func TestComposeIssueMessage(t *testing.T) { recipients := []*user_model.User{{Name: "Test", Email: "test@gitea.com"}, {Name: "Test2", Email: "test2@gitea.com"}} msgs, err := composeIssueCommentMessages(&mailCommentContext{ - Issue: issue, Doer: doer, ActionType: models.ActionCreateIssue, + Context: context.TODO(), // TODO: use a correct context + Issue: issue, Doer: doer, ActionType: models.ActionCreateIssue, Content: "test body", }, "en-US", recipients, false, "issue create") assert.NoError(t, err) @@ -145,13 +148,15 @@ func TestTemplateSelection(t *testing.T) { } msg := testComposeIssueCommentMessage(t, &mailCommentContext{ - Issue: issue, Doer: doer, ActionType: models.ActionCreateIssue, + Context: context.TODO(), // TODO: use a correct context + Issue: issue, Doer: doer, ActionType: models.ActionCreateIssue, Content: "test body", }, recipients, false, "TestTemplateSelection") expect(t, msg, "issue/new/subject", "issue/new/body") msg = testComposeIssueCommentMessage(t, &mailCommentContext{ - Issue: issue, Doer: doer, ActionType: models.ActionCommentIssue, + Context: context.TODO(), // TODO: use a correct context + Issue: issue, Doer: doer, ActionType: models.ActionCommentIssue, Content: "test body", Comment: comment, }, recipients, false, "TestTemplateSelection") expect(t, msg, "issue/default/subject", "issue/default/body") @@ -159,13 +164,15 @@ func TestTemplateSelection(t *testing.T) { pull := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2, Repo: repo, Poster: doer}).(*models.Issue) comment = unittest.AssertExistsAndLoadBean(t, &models.Comment{ID: 4, Issue: pull}).(*models.Comment) msg = testComposeIssueCommentMessage(t, &mailCommentContext{ - Issue: pull, Doer: doer, ActionType: models.ActionCommentPull, + Context: context.TODO(), // TODO: use a correct context + Issue: pull, Doer: doer, ActionType: models.ActionCommentPull, Content: "test body", Comment: comment, }, recipients, false, "TestTemplateSelection") expect(t, msg, "pull/comment/subject", "pull/comment/body") msg = testComposeIssueCommentMessage(t, &mailCommentContext{ - Issue: issue, Doer: doer, ActionType: models.ActionCloseIssue, + Context: context.TODO(), // TODO: use a correct context + Issue: issue, Doer: doer, ActionType: models.ActionCloseIssue, Content: "test body", Comment: comment, }, recipients, false, "TestTemplateSelection") expect(t, msg, "Re: [user2/repo1] issue1 (#1)", "issue/close/body") @@ -184,7 +191,8 @@ func TestTemplateServices(t *testing.T) { recipients := []*user_model.User{{Name: "Test", Email: "test@gitea.com"}} msg := testComposeIssueCommentMessage(t, &mailCommentContext{ - Issue: issue, Doer: doer, ActionType: actionType, + Context: context.TODO(), // TODO: use a correct context + Issue: issue, Doer: doer, ActionType: actionType, Content: "test body", Comment: comment, }, recipients, fromMention, "TestTemplateServices") @@ -226,7 +234,7 @@ func testComposeIssueCommentMessage(t *testing.T, ctx *mailCommentContext, recip func TestGenerateAdditionalHeaders(t *testing.T) { doer, _, issue, _ := prepareMailerTest(t) - ctx := &mailCommentContext{Issue: issue, Doer: doer} + ctx := &mailCommentContext{Context: context.TODO() /* TODO: use a correct context */, Issue: issue, Doer: doer} recipient := &user_model.User{Name: "Test", Email: "test@gitea.com"} headers := generateAdditionalHeaders(ctx, "dummy-reason", recipient) diff --git a/services/migrations/gitea_uploader.go b/services/migrations/gitea_uploader.go index 2faa0a1f2..607dd0a07 100644 --- a/services/migrations/gitea_uploader.go +++ b/services/migrations/gitea_uploader.go @@ -817,7 +817,7 @@ func (g *GiteaLocalUploader) Finish() error { return err } - if err := models.UpdateRepoStats(db.DefaultContext, g.repo.ID); err != nil { + if err := models.UpdateRepoStats(g.ctx, g.repo.ID); err != nil { return err } diff --git a/services/mirror/mirror_pull.go b/services/mirror/mirror_pull.go index 6c9c4a048..979ef7f03 100644 --- a/services/mirror/mirror_pull.go +++ b/services/mirror/mirror_pull.go @@ -12,7 +12,6 @@ import ( "code.gitea.io/gitea/models" admin_model "code.gitea.io/gitea/models/admin" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/modules/cache" "code.gitea.io/gitea/modules/git" @@ -287,7 +286,7 @@ func runSync(ctx context.Context, m *repo_model.Mirror) ([]*mirrorSyncResult, bo gitRepo.Close() log.Trace("SyncMirrors [repo: %-v]: updating size of repository", m.Repo) - if err := models.UpdateRepoSize(db.DefaultContext, m.Repo); err != nil { + if err := models.UpdateRepoSize(ctx, m.Repo); err != nil { log.Error("SyncMirrors [repo: %-v]: failed to update size for mirror repository: %v", m.Repo, err) } diff --git a/services/pull/check.go b/services/pull/check.go index b1e9237d1..3c79abf4b 100644 --- a/services/pull/check.go +++ b/services/pull/check.go @@ -13,7 +13,6 @@ import ( "strings" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unit" user_model "code.gitea.io/gitea/models/user" @@ -168,7 +167,7 @@ func manuallyMerged(ctx context.Context, pr *models.PullRequest) bool { // When the commit author is unknown set the BaseRepo owner as merger if merger == nil { if pr.BaseRepo.Owner == nil { - if err = pr.BaseRepo.GetOwner(db.DefaultContext); err != nil { + if err = pr.BaseRepo.GetOwner(ctx); err != nil { log.Error("BaseRepo.GetOwner[%d]: %v", pr.ID, err) return false } diff --git a/services/pull/merge.go b/services/pull/merge.go index cb857cc60..6108a7956 100644 --- a/services/pull/merge.go +++ b/services/pull/merge.go @@ -17,7 +17,6 @@ import ( "time" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unit" user_model "code.gitea.io/gitea/models/user" @@ -80,7 +79,7 @@ func Merge(ctx context.Context, pr *models.PullRequest, doer *user_model.User, b if err := pr.Issue.LoadRepo(); err != nil { log.Error("loadRepo for issue [%d]: %v", pr.ID, err) } - if err := pr.Issue.Repo.GetOwner(db.DefaultContext); err != nil { + if err := pr.Issue.Repo.GetOwner(ctx); err != nil { log.Error("GetOwner for issue repo [%d]: %v", pr.ID, err) } @@ -487,7 +486,7 @@ func rawMerge(ctx context.Context, pr *models.PullRequest, doer *user_model.User } var headUser *user_model.User - err = pr.HeadRepo.GetOwner(db.DefaultContext) + err = pr.HeadRepo.GetOwner(ctx) if err != nil { if !user_model.IsErrUserNotExist(err) { log.Error("Can't find user: %d for head repository - %v", pr.HeadRepo.OwnerID, err) diff --git a/services/pull/pull.go b/services/pull/pull.go index 82deb74a4..7a746d937 100644 --- a/services/pull/pull.go +++ b/services/pull/pull.go @@ -69,7 +69,7 @@ func NewPullRequest(ctx context.Context, repo *repo_model.Repository, pull *mode return err } - mentions, err := pull.FindAndUpdateIssueMentions(db.DefaultContext, pull.Poster, pull.Content) + mentions, err := pull.FindAndUpdateIssueMentions(ctx, pull.Poster, pull.Content) if err != nil { return err } diff --git a/services/pull/review.go b/services/pull/review.go index 25eef78d9..7f9797579 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -61,7 +61,7 @@ func CreateCodeComment(ctx context.Context, doer *user_model.User, gitRepo *git. return nil, err } - mentions, err := issue.FindAndUpdateIssueMentions(db.DefaultContext, doer, comment.Content) + mentions, err := issue.FindAndUpdateIssueMentions(ctx, doer, comment.Content) if err != nil { return nil, err } diff --git a/services/pull/temp_repo.go b/services/pull/temp_repo.go index 831d98745..c6c6d8b6e 100644 --- a/services/pull/temp_repo.go +++ b/services/pull/temp_repo.go @@ -13,7 +13,6 @@ import ( "strings" "code.gitea.io/gitea/models" - "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/modules/git" "code.gitea.io/gitea/modules/log" @@ -38,10 +37,10 @@ func createTemporaryRepo(ctx context.Context, pr *models.PullRequest) (string, e return "", &repo_model.ErrRepoNotExist{ ID: pr.BaseRepoID, } - } else if err := pr.HeadRepo.GetOwner(db.DefaultContext); err != nil { + } else if err := pr.HeadRepo.GetOwner(ctx); err != nil { log.Error("HeadRepo.GetOwner: %v", err) return "", fmt.Errorf("HeadRepo.GetOwner: %v", err) - } else if err := pr.BaseRepo.GetOwner(db.DefaultContext); err != nil { + } else if err := pr.BaseRepo.GetOwner(ctx); err != nil { log.Error("BaseRepo.GetOwner: %v", err) return "", fmt.Errorf("BaseRepo.GetOwner: %v", err) } diff --git a/services/release/release.go b/services/release/release.go index 0df863523..4d16e66ae 100644 --- a/services/release/release.go +++ b/services/release/release.go @@ -130,7 +130,7 @@ func CreateRelease(gitRepo *git.Repository, rel *models.Release, attachmentUUIDs return err } - if err = models.AddReleaseAttachments(db.DefaultContext, rel.ID, attachmentUUIDs); err != nil { + if err = models.AddReleaseAttachments(gitRepo.Ctx, rel.ID, attachmentUUIDs); err != nil { return err } @@ -319,7 +319,7 @@ func DeleteReleaseByID(ctx context.Context, id int64, doer *user_model.User, del } else { rel.IsTag = true - if err = models.UpdateRelease(db.DefaultContext, rel); err != nil { + if err = models.UpdateRelease(ctx, rel); err != nil { return fmt.Errorf("Update: %v", err) } } diff --git a/services/repository/check.go b/services/repository/check.go index 6adb8479c..6962090f8 100644 --- a/services/repository/check.go +++ b/services/repository/check.go @@ -27,7 +27,7 @@ func GitFsck(ctx context.Context, timeout time.Duration, args []string) error { log.Trace("Doing: GitFsck") if err := db.Iterate( - db.DefaultContext, + ctx, new(repo_model.Repository), builder.Expr("id>0 AND is_fsck_enabled=?", true), func(idx int, bean interface{}) error { @@ -62,7 +62,7 @@ func GitGcRepos(ctx context.Context, timeout time.Duration, args ...string) erro args = append([]string{"gc"}, args...) if err := db.Iterate( - db.DefaultContext, + ctx, new(repo_model.Repository), builder.Gt{"id": 0}, func(idx int, bean interface{}) error { @@ -97,7 +97,7 @@ func GitGcRepos(ctx context.Context, timeout time.Duration, args ...string) erro } // Now update the size of the repository - if err := models.UpdateRepoSize(db.DefaultContext, repo); err != nil { + if err := models.UpdateRepoSize(ctx, repo); err != nil { log.Error("Updating size as part of garbage collection failed for %v. Stdout: %s\nError: %v", repo, stdout, err) desc := fmt.Sprintf("Updating size as part of garbage collection failed for %s. Stdout: %s\nError: %v", repo.RepoPath(), stdout, err) if err = admin_model.CreateRepositoryNotice(desc); err != nil { @@ -119,7 +119,7 @@ func GitGcRepos(ctx context.Context, timeout time.Duration, args ...string) erro func gatherMissingRepoRecords(ctx context.Context) ([]*repo_model.Repository, error) { repos := make([]*repo_model.Repository, 0, 10) if err := db.Iterate( - db.DefaultContext, + ctx, new(repo_model.Repository), builder.Gt{"id": 0}, func(idx int, bean interface{}) error { diff --git a/services/repository/hooks.go b/services/repository/hooks.go index 390524949..40303d593 100644 --- a/services/repository/hooks.go +++ b/services/repository/hooks.go @@ -23,7 +23,7 @@ func SyncRepositoryHooks(ctx context.Context) error { log.Trace("Doing: SyncRepositoryHooks") if err := db.Iterate( - db.DefaultContext, + ctx, new(repo_model.Repository), builder.Gt{"id": 0}, func(idx int, bean interface{}) error { diff --git a/services/repository/push.go b/services/repository/push.go index fafe4736a..6cdfa1b4c 100644 --- a/services/repository/push.go +++ b/services/repository/push.go @@ -95,7 +95,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error { } defer gitRepo.Close() - if err = models.UpdateRepoSize(db.DefaultContext, repo); err != nil { + if err = models.UpdateRepoSize(ctx, repo); err != nil { log.Error("Failed to update size for repository: %v", err) } diff --git a/services/user/user.go b/services/user/user.go index 21f1a74f6..e31b174c0 100644 --- a/services/user/user.go +++ b/services/user/user.go @@ -78,7 +78,7 @@ func DeleteUser(u *user_model.User) error { path := user_model.UserPath(u.Name) if err := util.RemoveAll(path); err != nil { err = fmt.Errorf("Failed to RemoveAll %s: %v", path, err) - _ = admin_model.CreateNotice(db.DefaultContext, admin_model.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err)) + _ = admin_model.CreateNotice(ctx, admin_model.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err)) return err } @@ -86,7 +86,7 @@ func DeleteUser(u *user_model.User) error { avatarPath := u.CustomAvatarRelativePath() if err := storage.Avatars.Delete(avatarPath); err != nil { err = fmt.Errorf("Failed to remove %s: %v", avatarPath, err) - _ = admin_model.CreateNotice(db.DefaultContext, admin_model.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err)) + _ = admin_model.CreateNotice(ctx, admin_model.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err)) return err } }