From 4c00b99632990d81ade4c1a2df89c129a73d24bc Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 20 Nov 2022 20:21:49 +0800 Subject: [PATCH 1/5] refactor some functions to support ctx as first parameter --- cmd/admin.go | 2 +- models/activities/action.go | 22 +++--- models/activities/action_list.go | 2 +- models/activities/notification.go | 6 +- models/asymkey/gpg_key_commit_verification.go | 2 +- models/git/branches.go | 19 ++--- models/git/branches_test.go | 4 +- models/git/commit_status.go | 4 +- models/git/lfs_lock.go | 2 +- models/issues/assignees.go | 2 +- models/issues/assignees_test.go | 6 +- models/issues/comment.go | 6 +- models/issues/dependency_test.go | 2 +- models/issues/issue.go | 4 +- models/issues/issue_xref.go | 2 +- models/issues/milestone.go | 2 +- models/issues/pull.go | 17 ++--- models/issues/reaction.go | 2 +- models/issues/review.go | 8 +- models/issues/stopwatch_test.go | 6 +- models/issues/tracked_time.go | 4 +- models/issues/tracked_time_test.go | 2 +- models/org.go | 2 +- models/org_team.go | 20 +++-- models/organization/org.go | 2 +- models/organization/org_user_test.go | 4 +- models/organization/team.go | 10 +-- models/organization/team_test.go | 4 +- models/packages/descriptor.go | 6 +- models/perm/access/access.go | 2 +- models/perm/access/repo_permission.go | 2 +- models/project/project.go | 2 +- models/pull/automerge.go | 2 +- models/repo.go | 8 +- models/repo/collaboration.go | 2 +- models/repo/fork_test.go | 4 +- models/repo/issue.go | 2 +- models/repo/mirror.go | 2 +- models/repo/pushmirror.go | 2 +- models/repo/release.go | 4 +- models/repo/repo.go | 30 +++----- models/repo/repo_test.go | 2 +- models/repo_collaboration.go | 2 +- models/repo_transfer.go | 6 +- models/user/email_address.go | 2 +- models/user/email_address_test.go | 2 +- models/user/user.go | 11 +-- models/user/user_test.go | 2 +- modules/context/context.go | 2 +- modules/context/repo.go | 6 +- modules/convert/convert.go | 5 +- modules/convert/issue.go | 2 +- modules/convert/issue_comment.go | 6 +- modules/convert/notification.go | 3 +- modules/convert/package.go | 2 +- modules/convert/pull.go | 4 +- modules/convert/repository.go | 11 +-- modules/convert/status.go | 10 ++- modules/indexer/code/indexer.go | 2 +- modules/indexer/stats/db.go | 2 +- modules/indexer/stats/indexer_test.go | 2 +- modules/notification/webhook/webhook.go | 74 +++++++++---------- modules/repository/create_test.go | 6 +- modules/repository/generate.go | 2 +- modules/repository/init.go | 2 +- modules/templates/helper.go | 3 +- modules/test/context_tests.go | 2 +- routers/api/packages/conan/auth.go | 2 +- routers/api/packages/container/auth.go | 2 +- routers/api/packages/nuget/auth.go | 2 +- routers/api/v1/org/team.go | 4 +- routers/api/v1/repo/fork.go | 4 +- routers/api/v1/repo/hook.go | 2 +- routers/api/v1/repo/issue.go | 2 +- routers/api/v1/repo/issue_comment.go | 2 +- routers/api/v1/repo/key.go | 13 ++-- routers/api/v1/repo/migrate.go | 4 +- routers/api/v1/repo/pull.go | 2 +- routers/api/v1/repo/repo.go | 20 ++--- routers/api/v1/repo/status.go | 6 +- routers/api/v1/repo/transfer.go | 8 +- routers/api/v1/user/key.go | 3 +- routers/api/v1/user/repo.go | 4 +- routers/api/v1/user/star.go | 2 +- routers/api/v1/user/watch.go | 2 +- routers/private/hook_post_receive.go | 2 +- routers/private/hook_pre_receive.go | 2 +- routers/private/internal_repo.go | 2 +- routers/private/serv.go | 4 +- routers/web/admin/repos.go | 2 +- routers/web/admin/users.go | 4 +- routers/web/auth/2fa.go | 4 +- routers/web/auth/auth.go | 2 +- routers/web/auth/oauth.go | 6 +- routers/web/auth/webauthn.go | 4 +- routers/web/feed/convert.go | 2 +- routers/web/goget.go | 2 +- routers/web/org/teams.go | 10 +-- routers/web/repo/attachment.go | 2 +- routers/web/repo/branch.go | 2 +- routers/web/repo/compare.go | 4 +- routers/web/repo/issue.go | 10 +-- routers/web/repo/pull.go | 10 +-- routers/web/repo/release.go | 4 +- routers/web/repo/repo.go | 4 +- routers/web/repo/view.go | 2 +- routers/web/repo/webhook.go | 2 +- routers/web/user/package.go | 2 +- routers/web/user/setting/profile.go | 4 +- services/agit/agit.go | 4 +- services/auth/basic.go | 4 +- services/auth/httpsign.go | 2 +- services/auth/oauth2.go | 2 +- services/auth/session.go | 3 +- services/automerge/automerge.go | 2 +- services/issue/assignee.go | 2 +- services/issue/assignee_test.go | 2 +- services/issue/commit.go | 2 +- services/issue/issue.go | 2 +- services/issue/issue_test.go | 2 +- services/lfs/locks.go | 22 +++--- services/lfs/server.go | 5 +- services/mailer/mail_team_invite.go | 2 +- services/migrations/gitea_uploader.go | 2 +- services/pull/check.go | 4 +- services/pull/commit_status.go | 4 +- services/pull/merge.go | 4 +- services/pull/patch.go | 3 +- services/pull/pull.go | 4 +- services/pull/update.go | 2 +- services/release/release.go | 2 +- services/repository/adopt.go | 2 +- services/repository/archiver/archiver.go | 2 +- services/repository/files/upload.go | 2 +- services/repository/fork.go | 2 +- services/repository/push.go | 6 +- services/repository/repository.go | 10 +-- services/repository/repository_test.go | 2 +- services/repository/transfer.go | 2 +- .../api_issue_tracked_time_test.go | 2 +- tests/integration/api_repo_lfs_test.go | 3 +- tests/integration/git_test.go | 4 +- tests/integration/lfs_getobject_test.go | 3 +- tests/integration/repo_search_test.go | 5 +- 144 files changed, 352 insertions(+), 359 deletions(-) diff --git a/cmd/admin.go b/cmd/admin.go index 80b5d4853c077..feb39d8df0231 100644 --- a/cmd/admin.go +++ b/cmd/admin.go @@ -666,7 +666,7 @@ func runDeleteUser(c *cli.Context) error { } else if c.IsSet("username") { user, err = user_model.GetUserByName(ctx, c.String("username")) } else { - user, err = user_model.GetUserByID(c.Int64("id")) + user, err = user_model.GetUserByID(ctx, c.Int64("id")) } if err != nil { return err diff --git a/models/activities/action.go b/models/activities/action.go index bbb6073265724..5a74ef8963fa6 100644 --- a/models/activities/action.go +++ b/models/activities/action.go @@ -115,12 +115,12 @@ func (a *Action) GetOpType() ActionType { } // LoadActUser loads a.ActUser -func (a *Action) LoadActUser() { +func (a *Action) LoadActUser(ctx context.Context) { if a.ActUser != nil { return } var err error - a.ActUser, err = user_model.GetUserByID(a.ActUserID) + a.ActUser, err = user_model.GetUserByID(db.DefaultContext, a.ActUserID) if err == nil { return } else if user_model.IsErrUserNotExist(err) { @@ -130,12 +130,12 @@ func (a *Action) LoadActUser() { } } -func (a *Action) loadRepo() { +func (a *Action) loadRepo(ctx context.Context) { if a.Repo != nil { return } var err error - a.Repo, err = repo_model.GetRepositoryByID(a.RepoID) + a.Repo, err = repo_model.GetRepositoryByID(ctx, a.RepoID) if err != nil { log.Error("repo_model.GetRepositoryByID(%d): %v", a.RepoID, err) } @@ -143,13 +143,13 @@ func (a *Action) loadRepo() { // GetActFullName gets the action's user full name. func (a *Action) GetActFullName() string { - a.LoadActUser() + a.LoadActUser(db.DefaultContext) return a.ActUser.FullName } // GetActUserName gets the action's user name. func (a *Action) GetActUserName() string { - a.LoadActUser() + a.LoadActUser(db.DefaultContext) return a.ActUser.Name } @@ -180,7 +180,7 @@ func (a *Action) GetDisplayNameTitle() string { // GetRepoUserName returns the name of the action repository owner. func (a *Action) GetRepoUserName() string { - a.loadRepo() + a.loadRepo(db.DefaultContext) return a.Repo.OwnerName } @@ -192,7 +192,7 @@ func (a *Action) ShortRepoUserName() string { // GetRepoName returns the name of the action repository. func (a *Action) GetRepoName() string { - a.loadRepo() + a.loadRepo(db.DefaultContext) return a.Repo.Name } @@ -380,7 +380,7 @@ func activityQueryCondition(opts GetFeedsOptions) (builder.Cond, error) { cond := builder.NewCond() if opts.RequestedTeam != nil && opts.RequestedUser == nil { - org, err := user_model.GetUserByID(opts.RequestedTeam.OrgID) + org, err := user_model.GetUserByID(db.DefaultContext, opts.RequestedTeam.OrgID) if err != nil { return nil, err } @@ -490,7 +490,7 @@ func NotifyWatchers(ctx context.Context, actions ...*Action) error { } if repoChanged { - act.loadRepo() + act.loadRepo(ctx) repo = act.Repo // check repo owner exist. @@ -515,7 +515,7 @@ func NotifyWatchers(ctx context.Context, actions ...*Action) error { permIssue = make([]bool, len(watchers)) permPR = make([]bool, len(watchers)) for i, watcher := range watchers { - user, err := user_model.GetUserByIDCtx(ctx, watcher.UserID) + user, err := user_model.GetUserByID(ctx, watcher.UserID) if err != nil { permCode[i] = false permIssue[i] = false diff --git a/models/activities/action_list.go b/models/activities/action_list.go index 86aa8689e2f00..ac27a25a28655 100644 --- a/models/activities/action_list.go +++ b/models/activities/action_list.go @@ -82,7 +82,7 @@ func (actions ActionList) loadRepoOwner(ctx context.Context, userMap map[int64]* } repoOwner, ok := userMap[action.Repo.OwnerID] if !ok { - repoOwner, err = user_model.GetUserByIDCtx(ctx, action.Repo.OwnerID) + repoOwner, err = user_model.GetUserByID(ctx, action.Repo.OwnerID) if err != nil { if user_model.IsErrUserNotExist(err) { continue diff --git a/models/activities/notification.go b/models/activities/notification.go index 10b3a76713572..6d898808c265f 100644 --- a/models/activities/notification.go +++ b/models/activities/notification.go @@ -246,7 +246,7 @@ func createOrUpdateIssueNotifications(ctx context.Context, issueID, commentID, n // notify for userID := range toNotify { issue.Repo.Units = nil - user, err := user_model.GetUserByIDCtx(ctx, userID) + user, err := user_model.GetUserByID(ctx, userID) if err != nil { if user_model.IsErrUserNotExist(err) { continue @@ -389,7 +389,7 @@ func (n *Notification) LoadAttributes(ctx context.Context) (err error) { func (n *Notification) loadRepo(ctx context.Context) (err error) { if n.Repository == nil { - n.Repository, err = repo_model.GetRepositoryByIDCtx(ctx, n.RepoID) + n.Repository, err = repo_model.GetRepositoryByID(ctx, n.RepoID) if err != nil { return fmt.Errorf("getRepositoryByID [%d]: %w", n.RepoID, err) } @@ -426,7 +426,7 @@ func (n *Notification) loadComment(ctx context.Context) (err error) { func (n *Notification) loadUser(ctx context.Context) (err error) { if n.User == nil { - n.User, err = user_model.GetUserByIDCtx(ctx, n.UserID) + n.User, err = user_model.GetUserByID(ctx, n.UserID) if err != nil { return fmt.Errorf("getUserByID [%d]: %w", n.UserID, err) } diff --git a/models/asymkey/gpg_key_commit_verification.go b/models/asymkey/gpg_key_commit_verification.go index d5b06f83fd97f..dd7e34bf78fdb 100644 --- a/models/asymkey/gpg_key_commit_verification.go +++ b/models/asymkey/gpg_key_commit_verification.go @@ -427,7 +427,7 @@ func hashAndVerifyForKeyID(sig *packet.Signature, payload string, committer *use Email: email, } if key.OwnerID != 0 { - owner, err := user_model.GetUserByID(key.OwnerID) + owner, err := user_model.GetUserByID(db.DefaultContext, key.OwnerID) if err == nil { signer = owner } else if !user_model.IsErrUserNotExist(err) { diff --git a/models/git/branches.go b/models/git/branches.go index 328f6f0f0d00e..e1a0d471fec36 100644 --- a/models/git/branches.go +++ b/models/git/branches.go @@ -74,10 +74,10 @@ func (protectBranch *ProtectedBranch) CanUserPush(userID int64) bool { } if !protectBranch.EnableWhitelist { - if user, err := user_model.GetUserByID(userID); err != nil { + if user, err := user_model.GetUserByID(db.DefaultContext, userID); err != nil { log.Error("GetUserByID: %v", err) return false - } else if repo, err := repo_model.GetRepositoryByID(protectBranch.RepoID); err != nil { + } else if repo, err := repo_model.GetRepositoryByID(db.DefaultContext, protectBranch.RepoID); err != nil { log.Error("repo_model.GetRepositoryByID: %v", err) return false } else if writeAccess, err := access_model.HasAccessUnit(db.DefaultContext, user, repo, unit.TypeCode, perm.AccessModeWrite); err != nil { @@ -128,13 +128,8 @@ func IsUserMergeWhitelisted(ctx context.Context, protectBranch *ProtectedBranch, } // IsUserOfficialReviewer check if user is official reviewer for the branch (counts towards required approvals) -func IsUserOfficialReviewer(protectBranch *ProtectedBranch, user *user_model.User) (bool, error) { - return IsUserOfficialReviewerCtx(db.DefaultContext, protectBranch, user) -} - -// IsUserOfficialReviewerCtx check if user is official reviewer for the branch (counts towards required approvals) -func IsUserOfficialReviewerCtx(ctx context.Context, protectBranch *ProtectedBranch, user *user_model.User) (bool, error) { - repo, err := repo_model.GetRepositoryByIDCtx(ctx, protectBranch.RepoID) +func IsUserOfficialReviewer(ctx context.Context, protectBranch *ProtectedBranch, user *user_model.User) (bool, error) { + repo, err := repo_model.GetRepositoryByID(ctx, protectBranch.RepoID) if err != nil { return false, err } @@ -376,7 +371,7 @@ func updateUserWhitelist(ctx context.Context, repo *repo_model.Repository, curre whitelist = make([]int64, 0, len(newWhitelist)) for _, userID := range newWhitelist { - user, err := user_model.GetUserByIDCtx(ctx, userID) + user, err := user_model.GetUserByID(ctx, userID) if err != nil { return nil, fmt.Errorf("GetUserByID [user_id: %d, repo_id: %d]: %w", userID, repo.ID, err) } @@ -495,8 +490,8 @@ func RemoveDeletedBranchByID(repoID, id int64) (err error) { // LoadUser loads the user that deleted the branch // When there's no user found it returns a user_model.NewGhostUser -func (deletedBranch *DeletedBranch) LoadUser() { - user, err := user_model.GetUserByID(deletedBranch.DeletedByID) +func (deletedBranch *DeletedBranch) LoadUser(ctx context.Context) { + user, err := user_model.GetUserByID(ctx, deletedBranch.DeletedByID) if err != nil { user = user_model.NewGhostUser() } diff --git a/models/git/branches_test.go b/models/git/branches_test.go index 754c5a4e66dec..986715c679b7f 100644 --- a/models/git/branches_test.go +++ b/models/git/branches_test.go @@ -49,13 +49,13 @@ func TestDeletedBranchLoadUser(t *testing.T) { branch := getDeletedBranch(t, firstBranch) assert.Nil(t, branch.DeletedBy) - branch.LoadUser() + branch.LoadUser(db.DefaultContext) assert.NotNil(t, branch.DeletedBy) assert.Equal(t, "user1", branch.DeletedBy.Name) branch = getDeletedBranch(t, secondBranch) assert.Nil(t, branch.DeletedBy) - branch.LoadUser() + branch.LoadUser(db.DefaultContext) assert.NotNil(t, branch.DeletedBy) assert.Equal(t, "Ghost", branch.DeletedBy.Name) } diff --git a/models/git/commit_status.go b/models/git/commit_status.go index df6f5ae7ea1bc..3d16730057c40 100644 --- a/models/git/commit_status.go +++ b/models/git/commit_status.go @@ -126,13 +126,13 @@ func getNextCommitStatusIndex(repoID int64, sha string) (int64, error) { func (status *CommitStatus) loadAttributes(ctx context.Context) (err error) { if status.Repo == nil { - status.Repo, err = repo_model.GetRepositoryByIDCtx(ctx, status.RepoID) + status.Repo, err = repo_model.GetRepositoryByID(ctx, status.RepoID) if err != nil { return fmt.Errorf("getRepositoryByID [%d]: %w", status.RepoID, err) } } if status.Creator == nil && status.CreatorID > 0 { - status.Creator, err = user_model.GetUserByIDCtx(ctx, status.CreatorID) + status.Creator, err = user_model.GetUserByID(ctx, status.CreatorID) if err != nil { return fmt.Errorf("getUserByID [%d]: %w", status.CreatorID, err) } diff --git a/models/git/lfs_lock.go b/models/git/lfs_lock.go index c5a8cc245e3c6..6dcd173556230 100644 --- a/models/git/lfs_lock.go +++ b/models/git/lfs_lock.go @@ -168,7 +168,7 @@ func CheckLFSAccessForRepo(ctx context.Context, ownerID int64, repo *repo_model. if ownerID == 0 { return ErrLFSUnauthorizedAction{repo.ID, "undefined", mode} } - u, err := user_model.GetUserByIDCtx(ctx, ownerID) + u, err := user_model.GetUserByID(ctx, ownerID) if err != nil { return err } diff --git a/models/issues/assignees.go b/models/issues/assignees.go index 19480fa1e1f70..e09d9e09de065 100644 --- a/models/issues/assignees.go +++ b/models/issues/assignees.go @@ -119,7 +119,7 @@ func toggleIssueAssignee(ctx context.Context, issue *Issue, doer *user_model.Use // toggles user assignee state in database func toggleUserAssignee(ctx context.Context, issue *Issue, assigneeID int64) (removed bool, err error) { // Check if the user exists - assignee, err := user_model.GetUserByIDCtx(ctx, assigneeID) + assignee, err := user_model.GetUserByID(ctx, assigneeID) if err != nil { return false, err } diff --git a/models/issues/assignees_test.go b/models/issues/assignees_test.go index 4286bdd7eebe7..41804ce12bdb8 100644 --- a/models/issues/assignees_test.go +++ b/models/issues/assignees_test.go @@ -23,17 +23,17 @@ func TestUpdateAssignee(t *testing.T) { assert.NoError(t, err) // Assign multiple users - user2, err := user_model.GetUserByID(2) + user2, err := user_model.GetUserByID(db.DefaultContext, 2) assert.NoError(t, err) _, _, err = issues_model.ToggleIssueAssignee(issue, &user_model.User{ID: 1}, user2.ID) assert.NoError(t, err) - user3, err := user_model.GetUserByID(3) + user3, err := user_model.GetUserByID(db.DefaultContext, 3) assert.NoError(t, err) _, _, err = issues_model.ToggleIssueAssignee(issue, &user_model.User{ID: 1}, user3.ID) assert.NoError(t, err) - user1, err := user_model.GetUserByID(1) // This user is already assigned (see the definition in fixtures), so running UpdateAssignee should unassign him + user1, err := user_model.GetUserByID(db.DefaultContext, 1) // This user is already assigned (see the definition in fixtures), so running UpdateAssignee should unassign him assert.NoError(t, err) _, _, err = issues_model.ToggleIssueAssignee(issue, &user_model.User{ID: 1}, user1.ID) assert.NoError(t, err) diff --git a/models/issues/comment.go b/models/issues/comment.go index 9483814a19e04..3109761e9187d 100644 --- a/models/issues/comment.go +++ b/models/issues/comment.go @@ -351,7 +351,7 @@ func (c *Comment) LoadPoster(ctx context.Context) (err error) { return nil } - c.Poster, err = user_model.GetUserByIDCtx(ctx, c.PosterID) + c.Poster, err = user_model.GetUserByID(ctx, c.PosterID) if err != nil { if user_model.IsErrUserNotExist(err) { c.PosterID = -1 @@ -581,7 +581,7 @@ func (c *Comment) LoadAssigneeUserAndTeam() error { var err error if c.AssigneeID > 0 && c.Assignee == nil { - c.Assignee, err = user_model.GetUserByIDCtx(db.DefaultContext, c.AssigneeID) + c.Assignee, err = user_model.GetUserByID(db.DefaultContext, c.AssigneeID) if err != nil { if !user_model.IsErrUserNotExist(err) { return err @@ -616,7 +616,7 @@ func (c *Comment) LoadResolveDoer() (err error) { if c.ResolveDoerID == 0 || c.Type != CommentTypeCode { return nil } - c.ResolveDoer, err = user_model.GetUserByIDCtx(db.DefaultContext, c.ResolveDoerID) + c.ResolveDoer, err = user_model.GetUserByID(db.DefaultContext, c.ResolveDoerID) if err != nil { if user_model.IsErrUserNotExist(err) { c.ResolveDoer = user_model.NewGhostUser() diff --git a/models/issues/dependency_test.go b/models/issues/dependency_test.go index 3ea0b4ff5ca72..8e34f7542020d 100644 --- a/models/issues/dependency_test.go +++ b/models/issues/dependency_test.go @@ -19,7 +19,7 @@ func TestCreateIssueDependency(t *testing.T) { // Prepare assert.NoError(t, unittest.PrepareTestDatabase()) - user1, err := user_model.GetUserByID(1) + user1, err := user_model.GetUserByID(db.DefaultContext, 1) assert.NoError(t, err) issue1, err := issues_model.GetIssueByID(db.DefaultContext, 1) diff --git a/models/issues/issue.go b/models/issues/issue.go index 69d6657d46454..6062f5046cb7d 100644 --- a/models/issues/issue.go +++ b/models/issues/issue.go @@ -194,7 +194,7 @@ func (issue *Issue) IsOverdue() bool { // LoadRepo loads issue's repository func (issue *Issue) LoadRepo(ctx context.Context) (err error) { if issue.Repo == nil { - issue.Repo, err = repo_model.GetRepositoryByIDCtx(ctx, issue.RepoID) + issue.Repo, err = repo_model.GetRepositoryByID(ctx, issue.RepoID) if err != nil { return fmt.Errorf("getRepositoryByID [%d]: %w", issue.RepoID, err) } @@ -243,7 +243,7 @@ func (issue *Issue) LoadLabels(ctx context.Context) (err error) { // LoadPoster loads poster func (issue *Issue) LoadPoster(ctx context.Context) (err error) { if issue.Poster == nil { - issue.Poster, err = user_model.GetUserByIDCtx(ctx, issue.PosterID) + issue.Poster, err = user_model.GetUserByID(ctx, issue.PosterID) if err != nil { issue.PosterID = -1 issue.Poster = user_model.NewGhostUser() diff --git a/models/issues/issue_xref.go b/models/issues/issue_xref.go index 4c6601a0a2e55..d5897076de48c 100644 --- a/models/issues/issue_xref.go +++ b/models/issues/issue_xref.go @@ -149,7 +149,7 @@ func (issue *Issue) getCrossReferences(stdCtx context.Context, ctx *crossReferen refRepo = ctx.OrigIssue.Repo } else { // Issues in other repositories - refRepo, err = repo_model.GetRepositoryByOwnerAndNameCtx(stdCtx, ref.Owner, ref.Name) + refRepo, err = repo_model.GetRepositoryByOwnerAndName(stdCtx, ref.Owner, ref.Name) if err != nil { if repo_model.IsErrRepoNotExist(err) { continue diff --git a/models/issues/milestone.go b/models/issues/milestone.go index 9d1778f732e96..0d46874920589 100644 --- a/models/issues/milestone.go +++ b/models/issues/milestone.go @@ -285,7 +285,7 @@ func DeleteMilestoneByRepoID(repoID, id int64) error { return err } - repo, err := repo_model.GetRepositoryByID(m.RepoID) + repo, err := repo_model.GetRepositoryByID(db.DefaultContext, m.RepoID) if err != nil { return err } diff --git a/models/issues/pull.go b/models/issues/pull.go index 993a1ba8bdf76..d14252cd6fb7f 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -224,7 +224,7 @@ func (pr *PullRequest) MustHeadUserName(ctx context.Context) string { // Note: don't try to get Issue because will end up recursive querying. func (pr *PullRequest) LoadAttributes(ctx context.Context) (err error) { if pr.HasMerged && pr.Merger == nil { - pr.Merger, err = user_model.GetUserByIDCtx(ctx, pr.MergerID) + pr.Merger, err = user_model.GetUserByID(ctx, pr.MergerID) if user_model.IsErrUserNotExist(err) { pr.MergerID = -1 pr.Merger = user_model.NewGhostUser() @@ -249,9 +249,9 @@ func (pr *PullRequest) LoadHeadRepo(ctx context.Context) (err error) { } } - pr.HeadRepo, err = repo_model.GetRepositoryByIDCtx(ctx, pr.HeadRepoID) + pr.HeadRepo, err = repo_model.GetRepositoryByID(ctx, pr.HeadRepoID) if err != nil && !repo_model.IsErrRepoNotExist(err) { // Head repo maybe deleted, but it should still work - return fmt.Errorf("getRepositoryByID(head): %w", err) + return fmt.Errorf("GetRepositoryByID(head): %w", err) } pr.isHeadRepoLoaded = true } @@ -274,7 +274,7 @@ func (pr *PullRequest) LoadBaseRepo(ctx context.Context) (err error) { return nil } - pr.BaseRepo, err = repo_model.GetRepositoryByIDCtx(ctx, pr.BaseRepoID) + pr.BaseRepo, err = repo_model.GetRepositoryByID(ctx, pr.BaseRepoID) if err != nil { return fmt.Errorf("repo_model.GetRepositoryByID(base): %w", err) } @@ -295,18 +295,13 @@ func (pr *PullRequest) LoadIssue(ctx context.Context) (err error) { } // LoadProtectedBranch loads the protected branch of the base branch -func (pr *PullRequest) LoadProtectedBranch() (err error) { - return pr.LoadProtectedBranchCtx(db.DefaultContext) -} - -// LoadProtectedBranchCtx loads the protected branch of the base branch -func (pr *PullRequest) LoadProtectedBranchCtx(ctx context.Context) (err error) { +func (pr *PullRequest) LoadProtectedBranch(ctx context.Context) (err error) { if pr.ProtectedBranch == nil { if pr.BaseRepo == nil { if pr.BaseRepoID == 0 { return nil } - pr.BaseRepo, err = repo_model.GetRepositoryByIDCtx(ctx, pr.BaseRepoID) + pr.BaseRepo, err = repo_model.GetRepositoryByID(ctx, pr.BaseRepoID) if err != nil { return } diff --git a/models/issues/reaction.go b/models/issues/reaction.go index 5cb63795d1d62..79cffb7423943 100644 --- a/models/issues/reaction.go +++ b/models/issues/reaction.go @@ -76,7 +76,7 @@ func (r *Reaction) LoadUser() (*user_model.User, error) { if r.User != nil { return r.User, nil } - user, err := user_model.GetUserByIDCtx(db.DefaultContext, r.UserID) + user, err := user_model.GetUserByID(db.DefaultContext, r.UserID) if err != nil { return nil, err } diff --git a/models/issues/review.go b/models/issues/review.go index 5cf7d4c3da728..28a735003302a 100644 --- a/models/issues/review.go +++ b/models/issues/review.go @@ -159,7 +159,7 @@ func (r *Review) LoadReviewer(ctx context.Context) (err error) { if r.ReviewerID == 0 || r.Reviewer != nil { return } - r.Reviewer, err = user_model.GetUserByIDCtx(ctx, r.ReviewerID) + r.Reviewer, err = user_model.GetUserByID(ctx, r.ReviewerID) return err } @@ -264,7 +264,7 @@ func IsOfficialReviewer(ctx context.Context, issue *Issue, reviewers ...*user_mo if err != nil { return false, err } - if err = pr.LoadProtectedBranchCtx(ctx); err != nil { + if err = pr.LoadProtectedBranch(ctx); err != nil { return false, err } if pr.ProtectedBranch == nil { @@ -272,7 +272,7 @@ func IsOfficialReviewer(ctx context.Context, issue *Issue, reviewers ...*user_mo } for _, reviewer := range reviewers { - official, err := git_model.IsUserOfficialReviewerCtx(ctx, pr.ProtectedBranch, reviewer) + official, err := git_model.IsUserOfficialReviewer(ctx, pr.ProtectedBranch, reviewer) if official || err != nil { return official, err } @@ -287,7 +287,7 @@ func IsOfficialReviewerTeam(ctx context.Context, issue *Issue, team *organizatio if err != nil { return false, err } - if err = pr.LoadProtectedBranchCtx(ctx); err != nil { + if err = pr.LoadProtectedBranch(ctx); err != nil { return false, err } if pr.ProtectedBranch == nil { diff --git a/models/issues/stopwatch_test.go b/models/issues/stopwatch_test.go index a5e33f1cf6e2b..36dc4160367b2 100644 --- a/models/issues/stopwatch_test.go +++ b/models/issues/stopwatch_test.go @@ -19,7 +19,7 @@ import ( func TestCancelStopwatch(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) - user1, err := user_model.GetUserByID(1) + user1, err := user_model.GetUserByID(db.DefaultContext, 1) assert.NoError(t, err) issue1, err := issues_model.GetIssueByID(db.DefaultContext, 1) @@ -59,9 +59,9 @@ func TestHasUserStopwatch(t *testing.T) { func TestCreateOrStopIssueStopwatch(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) - user2, err := user_model.GetUserByID(2) + user2, err := user_model.GetUserByID(db.DefaultContext, 2) assert.NoError(t, err) - user3, err := user_model.GetUserByID(3) + user3, err := user_model.GetUserByID(db.DefaultContext, 3) assert.NoError(t, err) issue1, err := issues_model.GetIssueByID(db.DefaultContext, 1) diff --git a/models/issues/tracked_time.go b/models/issues/tracked_time.go index e1da0f32b0ef2..617a89e2818bc 100644 --- a/models/issues/tracked_time.go +++ b/models/issues/tracked_time.go @@ -58,7 +58,7 @@ func (t *TrackedTime) loadAttributes(ctx context.Context) (err error) { } } if t.User == nil { - t.User, err = user_model.GetUserByIDCtx(ctx, t.UserID) + t.User, err = user_model.GetUserByID(ctx, t.UserID) if err != nil { return } @@ -206,7 +206,7 @@ func TotalTimes(options *FindTrackedTimesOptions) (map[*user_model.User]string, totalTimes := make(map[*user_model.User]string) // Fetching User and making time human readable for userID, total := range totalTimesByUser { - user, err := user_model.GetUserByID(userID) + user, err := user_model.GetUserByID(db.DefaultContext, userID) if err != nil { if user_model.IsErrUserNotExist(err) { continue diff --git a/models/issues/tracked_time_test.go b/models/issues/tracked_time_test.go index ba8b242d99919..a74f01c2e1ba8 100644 --- a/models/issues/tracked_time_test.go +++ b/models/issues/tracked_time_test.go @@ -19,7 +19,7 @@ import ( func TestAddTime(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) - user3, err := user_model.GetUserByID(3) + user3, err := user_model.GetUserByID(db.DefaultContext, 3) assert.NoError(t, err) issue1, err := issues_model.GetIssueByID(db.DefaultContext, 1) diff --git a/models/org.go b/models/org.go index b56c80522b83d..d51b35a2bb41f 100644 --- a/models/org.go +++ b/models/org.go @@ -44,7 +44,7 @@ func removeOrgUser(ctx context.Context, orgID, userID int64) error { return err } if t.NumMembers == 1 { - if err := t.GetMembersCtx(ctx); err != nil { + if err := t.LoadMembers(ctx); err != nil { return err } if t.Members[0].ID == userID { diff --git a/models/org_team.go b/models/org_team.go index 792829563acba..96043e1e6fcad 100644 --- a/models/org_team.go +++ b/models/org_team.go @@ -42,7 +42,7 @@ func AddRepository(ctx context.Context, t *organization.Team, repo *repo_model.R // Make all team members watch this repo if enabled in global settings if setting.Service.AutoWatchNewRepos { - if err = t.GetMembersCtx(ctx); err != nil { + if err = t.LoadMembers(ctx); err != nil { return fmt.Errorf("getMembers: %w", err) } for _, u := range t.Members { @@ -214,7 +214,7 @@ func RemoveRepository(t *organization.Team, repoID int64) error { return nil } - repo, err := repo_model.GetRepositoryByID(repoID) + repo, err := repo_model.GetRepositoryByID(db.DefaultContext, repoID) if err != nil { return err } @@ -350,7 +350,7 @@ func UpdateTeam(t *organization.Team, authChanged, includeAllChanged bool) (err // Update access for team members if needed. if authChanged { - if err = t.GetRepositoriesCtx(ctx); err != nil { + if err = t.LoadRepositories(ctx); err != nil { return fmt.Errorf("getRepositories: %w", err) } @@ -382,11 +382,11 @@ func DeleteTeam(t *organization.Team) error { defer committer.Close() sess := db.GetEngine(ctx) - if err := t.GetRepositoriesCtx(ctx); err != nil { + if err := t.LoadRepositories(ctx); err != nil { return err } - if err := t.GetMembersCtx(ctx); err != nil { + if err := t.LoadMembers(ctx); err != nil { return err } @@ -517,10 +517,14 @@ func AddTeamMember(team *organization.Team, userID int64) error { } } + if err := committer.Commit(); err != nil { + return err + } + // watch could be failed, so run it in a goroutine if setting.Service.AutoWatchNewRepos { // Get team and its repositories. - if err := team.GetRepositoriesCtx(db.DefaultContext); err != nil { + if err := team.LoadRepositories(db.DefaultContext); err != nil { log.Error("getRepositories failed: %v", err) } go func(repos []*repo_model.Repository) { @@ -532,7 +536,7 @@ func AddTeamMember(team *organization.Team, userID int64) error { }(team.Repos) } - return committer.Commit() + return nil } func removeTeamMember(ctx context.Context, team *organization.Team, userID int64) error { @@ -549,7 +553,7 @@ func removeTeamMember(ctx context.Context, team *organization.Team, userID int64 team.NumMembers-- - if err := team.GetRepositoriesCtx(ctx); err != nil { + if err := team.LoadRepositories(ctx); err != nil { return err } diff --git a/models/organization/org.go b/models/organization/org.go index 6bb982b2814f3..437f92a1aaf43 100644 --- a/models/organization/org.go +++ b/models/organization/org.go @@ -702,7 +702,7 @@ func AccessibleReposEnv(ctx context.Context, org *Organization, userID int64) (A var user *user_model.User if userID > 0 { - u, err := user_model.GetUserByIDCtx(ctx, userID) + u, err := user_model.GetUserByID(ctx, userID) if err != nil { return nil, err } diff --git a/models/organization/org_user_test.go b/models/organization/org_user_test.go index aed3ea23cf8cd..35a46da27ec6b 100644 --- a/models/organization/org_user_test.go +++ b/models/organization/org_user_test.go @@ -38,7 +38,7 @@ func TestUserIsPublicMember(t *testing.T) { } func testUserIsPublicMember(t *testing.T, uid, orgID int64, expected bool) { - user, err := user_model.GetUserByID(uid) + user, err := user_model.GetUserByID(db.DefaultContext, uid) assert.NoError(t, err) is, err := organization.IsPublicMembership(orgID, user.ID) assert.NoError(t, err) @@ -66,7 +66,7 @@ func TestIsUserOrgOwner(t *testing.T) { } func testIsUserOrgOwner(t *testing.T, uid, orgID int64, expected bool) { - user, err := user_model.GetUserByID(uid) + user, err := user_model.GetUserByID(db.DefaultContext, uid) assert.NoError(t, err) is, err := organization.IsOrganizationOwner(db.DefaultContext, orgID, user.ID) assert.NoError(t, err) diff --git a/models/organization/team.go b/models/organization/team.go index aa9b24b57f439..ddcc2190cf957 100644 --- a/models/organization/team.go +++ b/models/organization/team.go @@ -223,8 +223,8 @@ func (t *Team) IsMember(userID int64) bool { return isMember } -// GetRepositoriesCtx returns paginated repositories in team of organization. -func (t *Team) GetRepositoriesCtx(ctx context.Context) (err error) { +// LoadRepositories returns paginated repositories in team of organization. +func (t *Team) LoadRepositories(ctx context.Context) (err error) { if t.Repos != nil { return nil } @@ -234,8 +234,8 @@ func (t *Team) GetRepositoriesCtx(ctx context.Context) (err error) { return err } -// GetMembersCtx returns paginated members in team of organization. -func (t *Team) GetMembersCtx(ctx context.Context) (err error) { +// LoadMembers returns paginated members in team of organization. +func (t *Team) LoadMembers(ctx context.Context) (err error) { t.Members, err = GetTeamMembers(ctx, &SearchMembersOptions{ TeamID: t.ID, }) @@ -249,7 +249,7 @@ func (t *Team) UnitEnabled(tp unit.Type) bool { // UnitAccessMode returns if the team has the given unit type enabled // it is called in templates, should not be replaced by `UnitAccessModeCtx(ctx ...)` -func (t *Team) UnitAccessMode(tp unit.Type) perm.AccessMode { +func (t *Team) UnitAccessMode(tp unit.Type) perm.AccessMode { // Notice: It will be used in template, don't remove it directly return t.UnitAccessModeCtx(db.DefaultContext, tp) } diff --git a/models/organization/team_test.go b/models/organization/team_test.go index c8d58a0eb7a8c..2142137c3b2a8 100644 --- a/models/organization/team_test.go +++ b/models/organization/team_test.go @@ -43,7 +43,7 @@ func TestTeam_GetRepositories(t *testing.T) { test := func(teamID int64) { team := unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: teamID}) - assert.NoError(t, team.GetRepositoriesCtx(db.DefaultContext)) + assert.NoError(t, team.LoadRepositories(db.DefaultContext)) assert.Len(t, team.Repos, team.NumRepos) for _, repo := range team.Repos { unittest.AssertExistsAndLoadBean(t, &organization.TeamRepo{TeamID: teamID, RepoID: repo.ID}) @@ -58,7 +58,7 @@ func TestTeam_GetMembers(t *testing.T) { test := func(teamID int64) { team := unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: teamID}) - assert.NoError(t, team.GetMembersCtx(db.DefaultContext)) + assert.NoError(t, team.LoadMembers(db.DefaultContext)) assert.Len(t, team.Members, team.NumMembers) for _, member := range team.Members { unittest.AssertExistsAndLoadBean(t, &organization.TeamUser{UID: member.ID, TeamID: teamID}) diff --git a/models/packages/descriptor.go b/models/packages/descriptor.go index 357574a706c2d..382ec434fbda3 100644 --- a/models/packages/descriptor.go +++ b/models/packages/descriptor.go @@ -86,15 +86,15 @@ func GetPackageDescriptor(ctx context.Context, pv *PackageVersion) (*PackageDesc if err != nil { return nil, err } - o, err := user_model.GetUserByIDCtx(ctx, p.OwnerID) + o, err := user_model.GetUserByID(ctx, p.OwnerID) if err != nil { return nil, err } - repository, err := repo_model.GetRepositoryByIDCtx(ctx, p.RepoID) + repository, err := repo_model.GetRepositoryByID(ctx, p.RepoID) if err != nil && !repo_model.IsErrRepoNotExist(err) { return nil, err } - creator, err := user_model.GetUserByIDCtx(ctx, pv.CreatorID) + creator, err := user_model.GetUserByID(ctx, pv.CreatorID) if err != nil { return nil, err } diff --git a/models/perm/access/access.go b/models/perm/access/access.go index 7344e114a64e2..843f9cdf94f12 100644 --- a/models/perm/access/access.go +++ b/models/perm/access/access.go @@ -172,7 +172,7 @@ func RecalculateTeamAccesses(ctx context.Context, repo *repo_model.Repository, i continue } - if err = t.GetMembersCtx(ctx); err != nil { + if err = t.LoadMembers(ctx); err != nil { return fmt.Errorf("getMembers '%d': %w", t.ID, err) } for _, m := range t.Members { diff --git a/models/perm/access/repo_permission.go b/models/perm/access/repo_permission.go index 3b709a3e85538..c653f6437d917 100644 --- a/models/perm/access/repo_permission.go +++ b/models/perm/access/repo_permission.go @@ -365,7 +365,7 @@ func HasAccess(ctx context.Context, userID int64, repo *repo_model.Repository) ( var user *user_model.User var err error if userID > 0 { - user, err = user_model.GetUserByIDCtx(ctx, userID) + user, err = user_model.GetUserByID(ctx, userID) if err != nil { return false, err } diff --git a/models/project/project.go b/models/project/project.go index 5dee241dcf3dd..82249e4b9854e 100644 --- a/models/project/project.go +++ b/models/project/project.go @@ -339,7 +339,7 @@ func DeleteProjectByIDCtx(ctx context.Context, id int64) error { return updateRepositoryProjectCount(ctx, p.RepoID) } -func DeleteProjectByRepoIDCtx(ctx context.Context, repoID int64) error { +func DeleteProjectByRepoID(ctx context.Context, repoID int64) error { switch { case setting.Database.UseSQLite3: if _, err := db.GetEngine(ctx).Exec("DELETE FROM project_issue WHERE project_issue.id IN (SELECT project_issue.id FROM project_issue INNER JOIN project WHERE project.id = project_issue.project_id AND project.repo_id = ?)", repoID); err != nil { diff --git a/models/pull/automerge.go b/models/pull/automerge.go index 16ab5af09391b..24ddad120a4b7 100644 --- a/models/pull/automerge.go +++ b/models/pull/automerge.go @@ -75,7 +75,7 @@ func GetScheduledMergeByPullID(ctx context.Context, pullID int64) (bool, *AutoMe return false, nil, err } - doer, err := user_model.GetUserByIDCtx(ctx, scheduledPRM.DoerID) + doer, err := user_model.GetUserByID(ctx, scheduledPRM.DoerID) if err != nil { return false, nil, err } diff --git a/models/repo.go b/models/repo.go index 2510f0e6bca46..7d7621fa3122b 100644 --- a/models/repo.go +++ b/models/repo.go @@ -53,7 +53,7 @@ func DeleteRepository(doer *user_model.User, uid, repoID int64) error { sess := db.GetEngine(ctx) // In case is a organization. - org, err := user_model.GetUserByIDCtx(ctx, uid) + org, err := user_model.GetUserByID(ctx, uid) if err != nil { return err } @@ -192,7 +192,7 @@ func DeleteRepository(doer *user_model.User, uid, repoID int64) error { } } - if err := project_model.DeleteProjectByRepoIDCtx(ctx, repoID); err != nil { + if err := project_model.DeleteProjectByRepoID(ctx, repoID); err != nil { return fmt.Errorf("unable to delete projects for repo[%d]: %w", repoID, err) } @@ -524,7 +524,7 @@ func CheckRepoStats(ctx context.Context) error { } log.Trace("Updating repository count 'num_forks': %d", id) - repo, err := repo_model.GetRepositoryByID(id) + repo, err := repo_model.GetRepositoryByID(ctx, id) if err != nil { log.Error("repo_model.GetRepositoryByID[%d]: %v", id, err) continue @@ -619,7 +619,7 @@ func DeleteDeployKey(ctx context.Context, doer *user_model.User, id int64) error // Check if user has access to delete this key. if !doer.IsAdmin { - repo, err := repo_model.GetRepositoryByIDCtx(ctx, key.RepoID) + repo, err := repo_model.GetRepositoryByID(ctx, key.RepoID) if err != nil { return fmt.Errorf("GetRepositoryByID: %w", err) } diff --git a/models/repo/collaboration.go b/models/repo/collaboration.go index c558259e46834..dcd5587ff9b54 100644 --- a/models/repo/collaboration.go +++ b/models/repo/collaboration.go @@ -45,7 +45,7 @@ func GetCollaborators(ctx context.Context, repoID int64, listOptions db.ListOpti collaborators := make([]*Collaborator, 0, len(collaborations)) for _, c := range collaborations { - user, err := user_model.GetUserByIDCtx(ctx, c.UserID) + user, err := user_model.GetUserByID(ctx, c.UserID) if err != nil { if user_model.IsErrUserNotExist(err) { log.Warn("Inconsistent DB: User: %d is listed as collaborator of %-v but does not exist", c.UserID, repoID) diff --git a/models/repo/fork_test.go b/models/repo/fork_test.go index 9e08d8136e2f6..365e059998160 100644 --- a/models/repo/fork_test.go +++ b/models/repo/fork_test.go @@ -18,14 +18,14 @@ func TestGetUserFork(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) // User13 has repo 11 forked from repo10 - repo, err := repo_model.GetRepositoryByID(10) + repo, err := repo_model.GetRepositoryByID(db.DefaultContext, 10) assert.NoError(t, err) assert.NotNil(t, repo) repo, err = repo_model.GetUserFork(db.DefaultContext, repo.ID, 13) assert.NoError(t, err) assert.NotNil(t, repo) - repo, err = repo_model.GetRepositoryByID(9) + repo, err = repo_model.GetRepositoryByID(db.DefaultContext, 9) assert.NoError(t, err) assert.NotNil(t, repo) repo, err = repo_model.GetUserFork(db.DefaultContext, repo.ID, 13) diff --git a/models/repo/issue.go b/models/repo/issue.go index 9f0fa3bad9cee..be74b30b1163a 100644 --- a/models/repo/issue.go +++ b/models/repo/issue.go @@ -27,7 +27,7 @@ func (repo *Repository) CanEnableTimetracker() bool { } // IsTimetrackerEnabled returns whether or not the timetracker is enabled. It returns the default value from config if an error occurs. -func (repo *Repository) IsTimetrackerEnabled() bool { +func (repo *Repository) IsTimetrackerEnabled() bool { // Notice: It will be used in template so don't remove directly return repo.IsTimetrackerEnabledCtx(db.DefaultContext) } diff --git a/models/repo/mirror.go b/models/repo/mirror.go index 297ffd594a720..307a36b4606eb 100644 --- a/models/repo/mirror.go +++ b/models/repo/mirror.go @@ -53,7 +53,7 @@ func (m *Mirror) GetRepository() *Repository { return m.Repo } var err error - m.Repo, err = GetRepositoryByIDCtx(db.DefaultContext, m.RepoID) + m.Repo, err = GetRepositoryByID(db.DefaultContext, m.RepoID) if err != nil { log.Error("getRepositoryByID[%d]: %v", m.ID, err) } diff --git a/models/repo/pushmirror.go b/models/repo/pushmirror.go index fa876ee560ac8..78d3c8726e1a3 100644 --- a/models/repo/pushmirror.go +++ b/models/repo/pushmirror.go @@ -62,7 +62,7 @@ func (m *PushMirror) GetRepository() *Repository { return m.Repo } var err error - m.Repo, err = GetRepositoryByIDCtx(db.DefaultContext, m.RepoID) + m.Repo, err = GetRepositoryByID(db.DefaultContext, m.RepoID) if err != nil { log.Error("getRepositoryByID[%d]: %v", m.ID, err) } diff --git a/models/repo/release.go b/models/repo/release.go index a92e4bb6e555b..7606be048254c 100644 --- a/models/repo/release.go +++ b/models/repo/release.go @@ -94,13 +94,13 @@ func init() { func (r *Release) LoadAttributes(ctx context.Context) error { var err error if r.Repo == nil { - r.Repo, err = GetRepositoryByIDCtx(ctx, r.RepoID) + r.Repo, err = GetRepositoryByID(ctx, r.RepoID) if err != nil { return err } } if r.Publisher == nil { - r.Publisher, err = user_model.GetUserByIDCtx(ctx, r.PublisherID) + r.Publisher, err = user_model.GetUserByID(ctx, r.PublisherID) if err != nil { if user_model.IsErrUserNotExist(err) { r.Publisher = user_model.NewGhostUser() diff --git a/models/repo/repo.go b/models/repo/repo.go index a3dac8383f7bc..7151970371e2b 100644 --- a/models/repo/repo.go +++ b/models/repo/repo.go @@ -316,7 +316,7 @@ func (repo *Repository) LoadUnits(ctx context.Context) (err error) { } // UnitEnabled if this repository has the given unit enabled -func (repo *Repository) UnitEnabled(tp unit.Type) (result bool) { +func (repo *Repository) UnitEnabled(tp unit.Type) (result bool) { // Notice: Don't remove this function directly, beacuse it has been used in go template. return repo.UnitEnabledCtx(db.DefaultContext, tp) } @@ -391,7 +391,7 @@ func (repo *Repository) GetOwner(ctx context.Context) (err error) { return nil } - repo.Owner, err = user_model.GetUserByIDCtx(ctx, repo.OwnerID) + repo.Owner, err = user_model.GetUserByID(ctx, repo.OwnerID) return err } @@ -468,8 +468,8 @@ func (repo *Repository) ComposeDocumentMetas() map[string]string { // GetBaseRepo populates repo.BaseRepo for a fork repository and // returns an error on failure (NOTE: no error is returned for // non-fork repositories, and BaseRepo will be left untouched) -func (repo *Repository) GetBaseRepo() (err error) { - return repo.getBaseRepo(db.DefaultContext) +func (repo *Repository) GetBaseRepo(ctx context.Context) (err error) { + return repo.getBaseRepo(ctx) } func (repo *Repository) getBaseRepo(ctx context.Context) (err error) { @@ -477,7 +477,7 @@ func (repo *Repository) getBaseRepo(ctx context.Context) (err error) { return nil } - repo.BaseRepo, err = GetRepositoryByIDCtx(ctx, repo.ForkID) + repo.BaseRepo, err = GetRepositoryByID(ctx, repo.ForkID) return err } @@ -612,11 +612,6 @@ func (repo *Repository) GetTrustModel() TrustModelType { return trustModel } -// GetRepositoryByOwnerAndName returns the repository by given ownername and reponame. -func GetRepositoryByOwnerAndName(ownerName, repoName string) (*Repository, error) { - return GetRepositoryByOwnerAndNameCtx(db.DefaultContext, ownerName, repoName) -} - // __________ .__ __ // \______ \ ____ ______ ____ _____|__|/ |_ ___________ ___.__. // | _// __ \\____ \ / _ \/ ___/ \ __\/ _ \_ __ < | | @@ -648,8 +643,8 @@ func (err ErrRepoNotExist) Unwrap() error { return util.ErrNotExist } -// GetRepositoryByOwnerAndNameCtx returns the repository by given owner name and repo name -func GetRepositoryByOwnerAndNameCtx(ctx context.Context, ownerName, repoName string) (*Repository, error) { +// GetRepositoryByOwnerAndName returns the repository by given owner name and repo name +func GetRepositoryByOwnerAndName(ctx context.Context, ownerName, repoName string) (*Repository, error) { var repo Repository has, err := db.GetEngine(ctx).Table("repository").Select("repository.*"). Join("INNER", "`user`", "`user`.id = repository.owner_id"). @@ -679,8 +674,8 @@ func GetRepositoryByName(ownerID int64, name string) (*Repository, error) { return repo, err } -// GetRepositoryByIDCtx returns the repository by given id if exists. -func GetRepositoryByIDCtx(ctx context.Context, id int64) (*Repository, error) { +// GetRepositoryByID returns the repository by given id if exists. +func GetRepositoryByID(ctx context.Context, id int64) (*Repository, error) { repo := new(Repository) has, err := db.GetEngine(ctx).ID(id).Get(repo) if err != nil { @@ -691,11 +686,6 @@ func GetRepositoryByIDCtx(ctx context.Context, id int64) (*Repository, error) { return repo, nil } -// GetRepositoryByID returns the repository by given id if exists. -func GetRepositoryByID(id int64) (*Repository, error) { - return GetRepositoryByIDCtx(db.DefaultContext, id) -} - // GetRepositoriesMapByIDs returns the repositories by given id slice. func GetRepositoriesMapByIDs(ids []int64) (map[int64]*Repository, error) { repos := make(map[int64]*Repository, len(ids)) @@ -723,7 +713,7 @@ func GetTemplateRepo(ctx context.Context, repo *Repository) (*Repository, error) return nil, nil } - return GetRepositoryByIDCtx(ctx, repo.TemplateID) + return GetRepositoryByID(ctx, repo.TemplateID) } // TemplateRepo returns the repository, which is template of this repository diff --git a/models/repo/repo_test.go b/models/repo/repo_test.go index 617ec12798d4b..769d204a5e0ac 100644 --- a/models/repo/repo_test.go +++ b/models/repo/repo_test.go @@ -116,7 +116,7 @@ func TestMetas(t *testing.T) { externalTracker.ExternalTrackerConfig().ExternalTrackerStyle = markup.IssueNameStyleRegexp testSuccess(markup.IssueNameStyleRegexp) - repo, err := repo_model.GetRepositoryByID(3) + repo, err := repo_model.GetRepositoryByID(db.DefaultContext, 3) assert.NoError(t, err) metas = repo.ComposeMetas() diff --git a/models/repo_collaboration.go b/models/repo_collaboration.go index 684d0e63a02c0..fc9826d27f5e6 100644 --- a/models/repo_collaboration.go +++ b/models/repo_collaboration.go @@ -54,7 +54,7 @@ func DeleteCollaboration(repo *repo_model.Repository, uid int64) (err error) { } func reconsiderRepoIssuesAssignee(ctx context.Context, repo *repo_model.Repository, uid int64) error { - user, err := user_model.GetUserByIDCtx(ctx, uid) + user, err := user_model.GetUserByID(ctx, uid) if err != nil { return err } diff --git a/models/repo_transfer.go b/models/repo_transfer.go index 067ab4122f0a7..511a577704f3a 100644 --- a/models/repo_transfer.go +++ b/models/repo_transfer.go @@ -42,7 +42,7 @@ func init() { // LoadAttributes fetches the transfer recipient from the database func (r *RepoTransfer) LoadAttributes() error { if r.Recipient == nil { - u, err := user_model.GetUserByID(r.RecipientID) + u, err := user_model.GetUserByID(db.DefaultContext, r.RecipientID) if err != nil { return err } @@ -66,7 +66,7 @@ func (r *RepoTransfer) LoadAttributes() error { } if r.Doer == nil { - u, err := user_model.GetUserByID(r.DoerID) + u, err := user_model.GetUserByID(db.DefaultContext, r.DoerID) if err != nil { return err } @@ -162,7 +162,7 @@ func CreatePendingRepositoryTransfer(doer, newOwner *user_model.User, repoID int } defer committer.Close() - repo, err := repo_model.GetRepositoryByIDCtx(ctx, repoID) + repo, err := repo_model.GetRepositoryByID(ctx, repoID) if err != nil { return err } diff --git a/models/user/email_address.go b/models/user/email_address.go index b6d372f04d7bb..ff84d035ad3a4 100644 --- a/models/user/email_address.go +++ b/models/user/email_address.go @@ -333,7 +333,7 @@ func ActivateEmail(email *EmailAddress) error { } func updateActivation(ctx context.Context, email *EmailAddress, activate bool) error { - user, err := GetUserByIDCtx(ctx, email.UID) + user, err := GetUserByID(ctx, email.UID) if err != nil { return err } diff --git a/models/user/email_address_test.go b/models/user/email_address_test.go index b9acaa1113aee..8e1375bc3fb4d 100644 --- a/models/user/email_address_test.go +++ b/models/user/email_address_test.go @@ -163,7 +163,7 @@ func TestMakeEmailPrimary(t *testing.T) { err = user_model.MakeEmailPrimary(email) assert.NoError(t, err) - user, _ := user_model.GetUserByID(int64(10)) + user, _ := user_model.GetUserByID(db.DefaultContext, int64(10)) assert.Equal(t, "user101@example.com", user.Email) } diff --git a/models/user/user.go b/models/user/user.go index 1a71acb0b7273..e38ca7f201207 100644 --- a/models/user/user.go +++ b/models/user/user.go @@ -994,12 +994,7 @@ func UserPath(userName string) string { //revive:disable-line:exported } // GetUserByID returns the user object by given ID if exists. -func GetUserByID(id int64) (*User, error) { - return GetUserByIDCtx(db.DefaultContext, id) -} - -// GetUserByIDCtx returns the user object by given ID if exists. -func GetUserByIDCtx(ctx context.Context, id int64) (*User, error) { +func GetUserByID(ctx context.Context, id int64) (*User, error) { u := new(User) has, err := db.GetEngine(ctx).ID(id).Get(u) if err != nil { @@ -1177,7 +1172,7 @@ func GetUserByEmailContext(ctx context.Context, email string) (*User, error) { return nil, err } if has { - return GetUserByIDCtx(ctx, emailAddress.UID) + return GetUserByID(ctx, emailAddress.UID) } // Finally, if email address is the protected email address: @@ -1221,7 +1216,7 @@ func GetUserByOpenID(uri string) (*User, error) { return nil, err } if has { - return GetUserByID(oid.UID) + return GetUserByID(db.DefaultContext, oid.UID) } return nil, ErrUserNotExist{0, uri, 0} diff --git a/models/user/user_test.go b/models/user/user_test.go index 1cdfb5978c865..6704f23b0a923 100644 --- a/models/user/user_test.go +++ b/models/user/user_test.go @@ -23,7 +23,7 @@ import ( func TestOAuth2Application_LoadUser(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) app := unittest.AssertExistsAndLoadBean(t, &auth.OAuth2Application{ID: 1}) - user, err := user_model.GetUserByID(app.UID) + user, err := user_model.GetUserByID(db.DefaultContext, app.UID) assert.NoError(t, err) assert.NotNil(t, user) } diff --git a/modules/context/context.go b/modules/context/context.go index 697eb769045a1..96ae633a48c1e 100644 --- a/modules/context/context.go +++ b/modules/context/context.go @@ -140,7 +140,7 @@ func (ctx *Context) IsUserRepoReaderAny() bool { // RedirectToUser redirect to a differently-named user func RedirectToUser(ctx *Context, userName string, redirectUserID int64) { - user, err := user_model.GetUserByID(redirectUserID) + user, err := user_model.GetUserByID(ctx, redirectUserID) if err != nil { ctx.ServerError("GetUserByID", err) return diff --git a/modules/context/repo.go b/modules/context/repo.go index 1a0263a3307a1..fd6c9d99d1a97 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -265,7 +265,7 @@ func (r *Repository) GetEditorconfig(optCommit ...*git.Commit) (*editorconfig.Ed // RetrieveBaseRepo retrieves base repository func RetrieveBaseRepo(ctx *Context, repo *repo_model.Repository) { // Non-fork repository will not return error in this method. - if err := repo.GetBaseRepo(); err != nil { + if err := repo.GetBaseRepo(ctx); err != nil { if repo_model.IsErrRepoNotExist(err) { repo.IsFork = false repo.ForkID = 0 @@ -336,7 +336,7 @@ func RedirectToRepo(ctx *Context, redirectRepoID int64) { ownerName := ctx.Params(":username") previousRepoName := ctx.Params(":reponame") - repo, err := repo_model.GetRepositoryByID(redirectRepoID) + repo, err := repo_model.GetRepositoryByID(ctx, redirectRepoID) if err != nil { ctx.ServerError("GetRepositoryByID", err) return @@ -411,7 +411,7 @@ func RepoIDAssignment() func(ctx *Context) { repoID := ctx.ParamsInt64(":repoid") // Get repository. - repo, err := repo_model.GetRepositoryByID(repoID) + repo, err := repo_model.GetRepositoryByID(ctx, repoID) if err != nil { if repo_model.IsErrRepoNotExist(err) { ctx.NotFound("GetRepositoryByID", nil) diff --git a/modules/convert/convert.go b/modules/convert/convert.go index 78eb62d42dc86..394a1879fc6d0 100644 --- a/modules/convert/convert.go +++ b/modules/convert/convert.go @@ -6,6 +6,7 @@ package convert import ( + stdCtx "context" "fmt" "strconv" "strings" @@ -409,8 +410,8 @@ func ToOAuth2Application(app *auth.OAuth2Application) *api.OAuth2Application { } // ToLFSLock convert a LFSLock to api.LFSLock -func ToLFSLock(l *git_model.LFSLock) *api.LFSLock { - u, err := user_model.GetUserByID(l.OwnerID) +func ToLFSLock(ctx stdCtx.Context, l *git_model.LFSLock) *api.LFSLock { + u, err := user_model.GetUserByID(ctx, l.OwnerID) if err != nil { return nil } diff --git a/modules/convert/issue.go b/modules/convert/issue.go index 7c11b2a89f874..85a9e7024a495 100644 --- a/modules/convert/issue.go +++ b/modules/convert/issue.go @@ -150,7 +150,7 @@ func ToStopWatches(sws []*issues_model.Stopwatch) (api.StopWatches, error) { } repo, ok = repoCache[issue.RepoID] if !ok { - repo, err = repo_model.GetRepositoryByID(issue.RepoID) + repo, err = repo_model.GetRepositoryByID(db.DefaultContext, issue.RepoID) if err != nil { return nil, err } diff --git a/modules/convert/issue_comment.go b/modules/convert/issue_comment.go index c33cf5c1116de..b5306f605d3da 100644 --- a/modules/convert/issue_comment.go +++ b/modules/convert/issue_comment.go @@ -139,15 +139,15 @@ func ToTimelineComment(ctx context.Context, c *issues_model.Comment, doer *user_ var repo *repo_model.Repository if c.Label.BelongsToOrg() { var err error - org, err = user_model.GetUserByIDCtx(ctx, c.Label.OrgID) + org, err = user_model.GetUserByID(ctx, c.Label.OrgID) if err != nil { - log.Error("GetUserByIDCtx(%d): %v", c.Label.OrgID, err) + log.Error("GetUserByID(%d): %v", c.Label.OrgID, err) return nil } } if c.Label.BelongsToRepo() { var err error - repo, err = repo_model.GetRepositoryByIDCtx(ctx, c.Label.RepoID) + repo, err = repo_model.GetRepositoryByID(ctx, c.Label.RepoID) if err != nil { log.Error("GetRepositoryByIDCtx(%d): %v", c.Label.RepoID, err) return nil diff --git a/modules/convert/notification.go b/modules/convert/notification.go index 55f782f8f6730..2bd03422ba11e 100644 --- a/modules/convert/notification.go +++ b/modules/convert/notification.go @@ -8,6 +8,7 @@ import ( "net/url" activities_model "code.gitea.io/gitea/models/activities" + "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/perm" api "code.gitea.io/gitea/modules/structs" ) @@ -24,7 +25,7 @@ func ToNotificationThread(n *activities_model.Notification) *api.NotificationThr // since user only get notifications when he has access to use minimal access mode if n.Repository != nil { - result.Repository = ToRepo(n.Repository, perm.AccessModeRead) + result.Repository = ToRepo(db.DefaultContext, n.Repository, perm.AccessModeRead) // This permission is not correct and we should not be reporting it for repository := result.Repository; repository != nil; repository = repository.Parent { diff --git a/modules/convert/package.go b/modules/convert/package.go index 9713cda48b8fd..27f7a5ec9dd5a 100644 --- a/modules/convert/package.go +++ b/modules/convert/package.go @@ -23,7 +23,7 @@ func ToPackage(ctx context.Context, pd *packages.PackageDescriptor, doer *user_m } if permission.HasAccess() { - repo = ToRepo(pd.Repository, permission.AccessMode) + repo = ToRepo(ctx, pd.Repository, permission.AccessMode) } } diff --git a/modules/convert/pull.go b/modules/convert/pull.go index ca9a4c39c5a5b..d9da149556864 100644 --- a/modules/convert/pull.go +++ b/modules/convert/pull.go @@ -80,7 +80,7 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u Name: pr.BaseBranch, Ref: pr.BaseBranch, RepoID: pr.BaseRepoID, - Repository: ToRepo(pr.BaseRepo, p.AccessMode), + Repository: ToRepo(ctx, pr.BaseRepo, p.AccessMode), }, Head: &api.PRBranchInfo{ Name: pr.HeadBranch, @@ -140,7 +140,7 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u } apiPullRequest.Head.RepoID = pr.HeadRepo.ID - apiPullRequest.Head.Repository = ToRepo(pr.HeadRepo, p.AccessMode) + apiPullRequest.Head.Repository = ToRepo(ctx, pr.HeadRepo, p.AccessMode) headGitRepo, err := git.OpenRepository(ctx, pr.HeadRepo.RepoPath()) if err != nil { diff --git a/modules/convert/repository.go b/modules/convert/repository.go index 09b84afa6c4c6..2ab45ed6af3fb 100644 --- a/modules/convert/repository.go +++ b/modules/convert/repository.go @@ -5,6 +5,7 @@ package convert import ( + "context" "time" "code.gitea.io/gitea/models" @@ -17,11 +18,11 @@ import ( ) // ToRepo converts a Repository to api.Repository -func ToRepo(repo *repo_model.Repository, mode perm.AccessMode) *api.Repository { - return innerToRepo(repo, mode, false) +func ToRepo(ctx context.Context, repo *repo_model.Repository, mode perm.AccessMode) *api.Repository { + return innerToRepo(ctx, repo, mode, false) } -func innerToRepo(repo *repo_model.Repository, mode perm.AccessMode, isParent bool) *api.Repository { +func innerToRepo(ctx context.Context, repo *repo_model.Repository, mode perm.AccessMode, isParent bool) *api.Repository { var parent *api.Repository cloneLink := repo.CloneLink() @@ -31,12 +32,12 @@ func innerToRepo(repo *repo_model.Repository, mode perm.AccessMode, isParent boo Pull: mode >= perm.AccessModeRead, } if !isParent { - err := repo.GetBaseRepo() + err := repo.GetBaseRepo(ctx) if err != nil { return nil } if repo.BaseRepo != nil { - parent = innerToRepo(repo.BaseRepo, mode, true) + parent = innerToRepo(ctx, repo.BaseRepo, mode, true) } } diff --git a/modules/convert/status.go b/modules/convert/status.go index 7ed28a9c109ed..63b39f6593c4a 100644 --- a/modules/convert/status.go +++ b/modules/convert/status.go @@ -5,13 +5,15 @@ package convert import ( + "context" + git_model "code.gitea.io/gitea/models/git" user_model "code.gitea.io/gitea/models/user" api "code.gitea.io/gitea/modules/structs" ) // ToCommitStatus converts git_model.CommitStatus to api.CommitStatus -func ToCommitStatus(status *git_model.CommitStatus) *api.CommitStatus { +func ToCommitStatus(ctx context.Context, status *git_model.CommitStatus) *api.CommitStatus { apiStatus := &api.CommitStatus{ Created: status.CreatedUnix.AsTime(), Updated: status.CreatedUnix.AsTime(), @@ -24,7 +26,7 @@ func ToCommitStatus(status *git_model.CommitStatus) *api.CommitStatus { } if status.CreatorID != 0 { - creator, _ := user_model.GetUserByID(status.CreatorID) + creator, _ := user_model.GetUserByID(ctx, status.CreatorID) apiStatus.Creator = ToUser(creator, nil) } @@ -32,7 +34,7 @@ func ToCommitStatus(status *git_model.CommitStatus) *api.CommitStatus { } // ToCombinedStatus converts List of CommitStatus to a CombinedStatus -func ToCombinedStatus(statuses []*git_model.CommitStatus, repo *api.Repository) *api.CombinedStatus { +func ToCombinedStatus(ctx context.Context, statuses []*git_model.CommitStatus, repo *api.Repository) *api.CombinedStatus { if len(statuses) == 0 { return nil } @@ -46,7 +48,7 @@ func ToCombinedStatus(statuses []*git_model.CommitStatus, repo *api.Repository) retStatus.Statuses = make([]*api.CommitStatus, 0, len(statuses)) for _, status := range statuses { - retStatus.Statuses = append(retStatus.Statuses, ToCommitStatus(status)) + retStatus.Statuses = append(retStatus.Statuses, ToCommitStatus(ctx, status)) if status.State.NoBetterThan(retStatus.State) { retStatus.State = status.State } diff --git a/modules/indexer/code/indexer.go b/modules/indexer/code/indexer.go index 9845ade3dda47..126103ed56cd1 100644 --- a/modules/indexer/code/indexer.go +++ b/modules/indexer/code/indexer.go @@ -85,7 +85,7 @@ type IndexerData struct { var indexerQueue queue.UniqueQueue func index(ctx context.Context, indexer Indexer, repoID int64) error { - repo, err := repo_model.GetRepositoryByID(repoID) + repo, err := repo_model.GetRepositoryByID(ctx, repoID) if repo_model.IsErrRepoNotExist(err) { return indexer.Delete(repoID) } diff --git a/modules/indexer/stats/db.go b/modules/indexer/stats/db.go index d39b1dcf2aacd..1368e4686a090 100644 --- a/modules/indexer/stats/db.go +++ b/modules/indexer/stats/db.go @@ -22,7 +22,7 @@ func (db *DBIndexer) Index(id int64) error { ctx, _, finished := process.GetManager().AddContext(graceful.GetManager().ShutdownContext(), fmt.Sprintf("Stats.DB Index Repo[%d]", id)) defer finished() - repo, err := repo_model.GetRepositoryByID(id) + repo, err := repo_model.GetRepositoryByID(ctx, id) if err != nil { return err } diff --git a/modules/indexer/stats/indexer_test.go b/modules/indexer/stats/indexer_test.go index a4a8b6324116a..ba751fea57aba 100644 --- a/modules/indexer/stats/indexer_test.go +++ b/modules/indexer/stats/indexer_test.go @@ -37,7 +37,7 @@ func TestRepoStatsIndex(t *testing.T) { err := Init() assert.NoError(t, err) - repo, err := repo_model.GetRepositoryByID(1) + repo, err := repo_model.GetRepositoryByID(db.DefaultContext, 1) assert.NoError(t, err) err = UpdateRepoIndexer(repo) diff --git a/modules/notification/webhook/webhook.go b/modules/notification/webhook/webhook.go index 37ce7661f220c..29d91f4f71b1d 100644 --- a/modules/notification/webhook/webhook.go +++ b/modules/notification/webhook/webhook.go @@ -59,7 +59,7 @@ func (m *webhookNotifier) NotifyIssueClearLabels(ctx context.Context, doer *user Action: api.HookIssueLabelCleared, Index: issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, issue.PullRequest, nil), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } else { @@ -67,7 +67,7 @@ func (m *webhookNotifier) NotifyIssueClearLabels(ctx context.Context, doer *user Action: api.HookIssueLabelCleared, Index: issue.Index, Issue: convert.ToAPIIssue(ctx, issue), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } @@ -82,8 +82,8 @@ func (m *webhookNotifier) NotifyForkRepository(ctx context.Context, doer *user_m // forked webhook if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: oldRepo}, webhook.HookEventFork, &api.ForkPayload{ - Forkee: convert.ToRepo(oldRepo, oldMode), - Repo: convert.ToRepo(repo, mode), + Forkee: convert.ToRepo(ctx, oldRepo, oldMode), + Repo: convert.ToRepo(ctx, repo, mode), Sender: convert.ToUser(doer, nil), }); err != nil { log.Error("PrepareWebhooks [repo_id: %d]: %v", oldRepo.ID, err) @@ -95,7 +95,7 @@ func (m *webhookNotifier) NotifyForkRepository(ctx context.Context, doer *user_m if u.IsOrganization() { if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventRepository, &api.RepositoryPayload{ Action: api.HookRepoCreated, - Repository: convert.ToRepo(repo, perm.AccessModeOwner), + Repository: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Organization: convert.ToUser(u, nil), Sender: convert.ToUser(doer, nil), }); err != nil { @@ -108,7 +108,7 @@ func (m *webhookNotifier) NotifyCreateRepository(ctx context.Context, doer, u *u // Add to hook queue for created repo after session commit. if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventRepository, &api.RepositoryPayload{ Action: api.HookRepoCreated, - Repository: convert.ToRepo(repo, perm.AccessModeOwner), + Repository: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Organization: convert.ToUser(u, nil), Sender: convert.ToUser(doer, nil), }); err != nil { @@ -119,7 +119,7 @@ func (m *webhookNotifier) NotifyCreateRepository(ctx context.Context, doer, u *u func (m *webhookNotifier) NotifyDeleteRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository) { if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventRepository, &api.RepositoryPayload{ Action: api.HookRepoDeleted, - Repository: convert.ToRepo(repo, perm.AccessModeOwner), + Repository: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Organization: convert.ToUser(repo.MustOwner(ctx), nil), Sender: convert.ToUser(doer, nil), }); err != nil { @@ -131,7 +131,7 @@ func (m *webhookNotifier) NotifyMigrateRepository(ctx context.Context, doer, u * // Add to hook queue for created repo after session commit. if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventRepository, &api.RepositoryPayload{ Action: api.HookRepoCreated, - Repository: convert.ToRepo(repo, perm.AccessModeOwner), + Repository: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Organization: convert.ToUser(u, nil), Sender: convert.ToUser(doer, nil), }); err != nil { @@ -151,7 +151,7 @@ func (m *webhookNotifier) NotifyIssueChangeAssignee(ctx context.Context, doer *u apiPullRequest := &api.PullRequestPayload{ Index: issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, issue.PullRequest, nil), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), } if removed { @@ -169,7 +169,7 @@ func (m *webhookNotifier) NotifyIssueChangeAssignee(ctx context.Context, doer *u apiIssue := &api.IssuePayload{ Index: issue.Index, Issue: convert.ToAPIIssue(ctx, issue), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), } if removed { @@ -203,7 +203,7 @@ func (m *webhookNotifier) NotifyIssueChangeTitle(ctx context.Context, doer *user }, }, PullRequest: convert.ToAPIPullRequest(ctx, issue.PullRequest, nil), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } else { @@ -216,7 +216,7 @@ func (m *webhookNotifier) NotifyIssueChangeTitle(ctx context.Context, doer *user }, }, Issue: convert.ToAPIIssue(ctx, issue), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } @@ -238,7 +238,7 @@ func (m *webhookNotifier) NotifyIssueChangeStatus(ctx context.Context, doer *use apiPullRequest := &api.PullRequestPayload{ Index: issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, issue.PullRequest, nil), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), } if isClosed { @@ -251,7 +251,7 @@ func (m *webhookNotifier) NotifyIssueChangeStatus(ctx context.Context, doer *use apiIssue := &api.IssuePayload{ Index: issue.Index, Issue: convert.ToAPIIssue(ctx, issue), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), } if isClosed { @@ -281,7 +281,7 @@ func (m *webhookNotifier) NotifyNewIssue(ctx context.Context, issue *issues_mode Action: api.HookIssueOpened, Index: issue.Index, Issue: convert.ToAPIIssue(ctx, issue), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(issue.Poster, nil), }); err != nil { log.Error("PrepareWebhooks: %v", err) @@ -307,7 +307,7 @@ func (m *webhookNotifier) NotifyNewPullRequest(ctx context.Context, pull *issues Action: api.HookIssueOpened, Index: pull.Issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, pull, nil), - Repository: convert.ToRepo(pull.Issue.Repo, mode), + Repository: convert.ToRepo(ctx, pull.Issue.Repo, mode), Sender: convert.ToUser(pull.Issue.Poster, nil), }); err != nil { log.Error("PrepareWebhooks: %v", err) @@ -328,7 +328,7 @@ func (m *webhookNotifier) NotifyIssueChangeContent(ctx context.Context, doer *us }, }, PullRequest: convert.ToAPIPullRequest(ctx, issue.PullRequest, nil), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } else { @@ -341,7 +341,7 @@ func (m *webhookNotifier) NotifyIssueChangeContent(ctx context.Context, doer *us }, }, Issue: convert.ToAPIIssue(ctx, issue), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } @@ -382,7 +382,7 @@ func (m *webhookNotifier) NotifyUpdateComment(ctx context.Context, doer *user_mo From: oldContent, }, }, - Repository: convert.ToRepo(c.Issue.Repo, mode), + Repository: convert.ToRepo(ctx, c.Issue.Repo, mode), Sender: convert.ToUser(doer, nil), IsPull: c.Issue.IsPull, }); err != nil { @@ -405,7 +405,7 @@ func (m *webhookNotifier) NotifyCreateIssueComment(ctx context.Context, doer *us Action: api.HookIssueCommentCreated, Issue: convert.ToAPIIssue(ctx, issue), Comment: convert.ToComment(comment), - Repository: convert.ToRepo(repo, mode), + Repository: convert.ToRepo(ctx, repo, mode), Sender: convert.ToUser(doer, nil), IsPull: issue.IsPull, }); err != nil { @@ -442,7 +442,7 @@ func (m *webhookNotifier) NotifyDeleteComment(ctx context.Context, doer *user_mo Action: api.HookIssueCommentDeleted, Issue: convert.ToAPIIssue(ctx, comment.Issue), Comment: convert.ToComment(comment), - Repository: convert.ToRepo(comment.Issue.Repo, mode), + Repository: convert.ToRepo(ctx, comment.Issue.Repo, mode), Sender: convert.ToUser(doer, nil), IsPull: comment.Issue.IsPull, }); err != nil { @@ -454,7 +454,7 @@ func (m *webhookNotifier) NotifyNewWikiPage(ctx context.Context, doer *user_mode // Add to hook queue for created wiki page. if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventWiki, &api.WikiPayload{ Action: api.HookWikiCreated, - Repository: convert.ToRepo(repo, perm.AccessModeOwner), + Repository: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Sender: convert.ToUser(doer, nil), Page: page, Comment: comment, @@ -467,7 +467,7 @@ func (m *webhookNotifier) NotifyEditWikiPage(ctx context.Context, doer *user_mod // Add to hook queue for edit wiki page. if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventWiki, &api.WikiPayload{ Action: api.HookWikiEdited, - Repository: convert.ToRepo(repo, perm.AccessModeOwner), + Repository: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Sender: convert.ToUser(doer, nil), Page: page, Comment: comment, @@ -480,7 +480,7 @@ func (m *webhookNotifier) NotifyDeleteWikiPage(ctx context.Context, doer *user_m // Add to hook queue for edit wiki page. if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventWiki, &api.WikiPayload{ Action: api.HookWikiDeleted, - Repository: convert.ToRepo(repo, perm.AccessModeOwner), + Repository: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Sender: convert.ToUser(doer, nil), Page: page, }); err != nil { @@ -517,7 +517,7 @@ func (m *webhookNotifier) NotifyIssueChangeLabels(ctx context.Context, doer *use Action: api.HookIssueLabelUpdated, Index: issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, issue.PullRequest, nil), - Repository: convert.ToRepo(issue.Repo, perm.AccessModeNone), + Repository: convert.ToRepo(ctx, issue.Repo, perm.AccessModeNone), Sender: convert.ToUser(doer, nil), }) } else { @@ -525,7 +525,7 @@ func (m *webhookNotifier) NotifyIssueChangeLabels(ctx context.Context, doer *use Action: api.HookIssueLabelUpdated, Index: issue.Index, Issue: convert.ToAPIIssue(ctx, issue), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } @@ -559,7 +559,7 @@ func (m *webhookNotifier) NotifyIssueChangeMilestone(ctx context.Context, doer * Action: hookAction, Index: issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, issue.PullRequest, nil), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } else { @@ -567,7 +567,7 @@ func (m *webhookNotifier) NotifyIssueChangeMilestone(ctx context.Context, doer * Action: hookAction, Index: issue.Index, Issue: convert.ToAPIIssue(ctx, issue), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }) } @@ -592,7 +592,7 @@ func (m *webhookNotifier) NotifyPushCommits(ctx context.Context, pusher *user_mo Commits: apiCommits, TotalCommits: commits.Len, HeadCommit: apiHeadCommit, - Repo: convert.ToRepo(repo, perm.AccessModeOwner), + Repo: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Pusher: apiPusher, Sender: apiPusher, }); err != nil { @@ -632,7 +632,7 @@ func (*webhookNotifier) NotifyMergePullRequest(ctx context.Context, doer *user_m apiPullRequest := &api.PullRequestPayload{ Index: pr.Issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, pr, nil), - Repository: convert.ToRepo(pr.Issue.Repo, mode), + Repository: convert.ToRepo(ctx, pr.Issue.Repo, mode), Sender: convert.ToUser(doer, nil), Action: api.HookIssueClosed, } @@ -660,7 +660,7 @@ func (m *webhookNotifier) NotifyPullRequestChangeTargetBranch(ctx context.Contex }, }, PullRequest: convert.ToAPIPullRequest(ctx, pr, nil), - Repository: convert.ToRepo(issue.Repo, mode), + Repository: convert.ToRepo(ctx, issue.Repo, mode), Sender: convert.ToUser(doer, nil), }); err != nil { log.Error("PrepareWebhooks [pr: %d]: %v", pr.ID, err) @@ -697,7 +697,7 @@ func (m *webhookNotifier) NotifyPullRequestReview(ctx context.Context, pr *issue Action: api.HookIssueReviewed, Index: review.Issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, pr, nil), - Repository: convert.ToRepo(review.Issue.Repo, mode), + Repository: convert.ToRepo(ctx, review.Issue.Repo, mode), Sender: convert.ToUser(review.Reviewer, nil), Review: &api.ReviewPayload{ Type: string(reviewHookType), @@ -710,7 +710,7 @@ func (m *webhookNotifier) NotifyPullRequestReview(ctx context.Context, pr *issue func (m *webhookNotifier) NotifyCreateRef(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, refType, refFullName, refID string) { apiPusher := convert.ToUser(pusher, nil) - apiRepo := convert.ToRepo(repo, perm.AccessModeNone) + apiRepo := convert.ToRepo(ctx, repo, perm.AccessModeNone) refName := git.RefEndName(refFullName) if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventCreate, &api.CreatePayload{ @@ -738,7 +738,7 @@ func (m *webhookNotifier) NotifyPullRequestSynchronized(ctx context.Context, doe Action: api.HookIssueSynchronized, Index: pr.Issue.Index, PullRequest: convert.ToAPIPullRequest(ctx, pr, nil), - Repository: convert.ToRepo(pr.Issue.Repo, perm.AccessModeNone), + Repository: convert.ToRepo(ctx, pr.Issue.Repo, perm.AccessModeNone), Sender: convert.ToUser(doer, nil), }); err != nil { log.Error("PrepareWebhooks [pull_id: %v]: %v", pr.ID, err) @@ -747,7 +747,7 @@ func (m *webhookNotifier) NotifyPullRequestSynchronized(ctx context.Context, doe func (m *webhookNotifier) NotifyDeleteRef(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, refType, refFullName string) { apiPusher := convert.ToUser(pusher, nil) - apiRepo := convert.ToRepo(repo, perm.AccessModeNone) + apiRepo := convert.ToRepo(ctx, repo, perm.AccessModeNone) refName := git.RefEndName(refFullName) if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: repo}, webhook.HookEventDelete, &api.DeletePayload{ @@ -771,7 +771,7 @@ func sendReleaseHook(ctx context.Context, doer *user_model.User, rel *repo_model if err := webhook_services.PrepareWebhooks(ctx, webhook_services.EventSource{Repository: rel.Repo}, webhook.HookEventRelease, &api.ReleasePayload{ Action: action, Release: convert.ToRelease(rel), - Repository: convert.ToRepo(rel.Repo, mode), + Repository: convert.ToRepo(ctx, rel.Repo, mode), Sender: convert.ToUser(doer, nil), }); err != nil { log.Error("PrepareWebhooks: %v", err) @@ -806,7 +806,7 @@ func (m *webhookNotifier) NotifySyncPushCommits(ctx context.Context, pusher *use Commits: apiCommits, TotalCommits: commits.Len, HeadCommit: apiHeadCommit, - Repo: convert.ToRepo(repo, perm.AccessModeOwner), + Repo: convert.ToRepo(ctx, repo, perm.AccessModeOwner), Pusher: apiPusher, Sender: apiPusher, }); err != nil { diff --git a/modules/repository/create_test.go b/modules/repository/create_test.go index 3040782845814..970d2136c6830 100644 --- a/modules/repository/create_test.go +++ b/modules/repository/create_test.go @@ -26,7 +26,7 @@ func TestIncludesAllRepositoriesTeams(t *testing.T) { testTeamRepositories := func(teamID int64, repoIds []int64) { team := unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: teamID}) - assert.NoError(t, team.GetRepositoriesCtx(db.DefaultContext), "%s: GetRepositories", team.Name) + assert.NoError(t, team.LoadRepositories(db.DefaultContext), "%s: GetRepositories", team.Name) assert.Len(t, team.Repos, team.NumRepos, "%s: len repo", team.Name) assert.Len(t, team.Repos, len(repoIds), "%s: repo count", team.Name) for i, rid := range repoIds { @@ -37,7 +37,7 @@ func TestIncludesAllRepositoriesTeams(t *testing.T) { } // Get an admin user. - user, err := user_model.GetUserByID(1) + user, err := user_model.GetUserByID(db.DefaultContext, 1) assert.NoError(t, err, "GetUserByID") // Create org. @@ -154,7 +154,7 @@ func TestUpdateRepositoryVisibilityChanged(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) // Get sample repo and change visibility - repo, err := repo_model.GetRepositoryByID(9) + repo, err := repo_model.GetRepositoryByID(db.DefaultContext, 9) assert.NoError(t, err) repo.IsPrivate = true diff --git a/modules/repository/generate.go b/modules/repository/generate.go index c5fd7d60bfc15..9b2d8a47b250a 100644 --- a/modules/repository/generate.go +++ b/modules/repository/generate.go @@ -244,7 +244,7 @@ func generateGitContent(ctx context.Context, repo, templateRepo, generateRepo *r } // re-fetch repo - if repo, err = repo_model.GetRepositoryByIDCtx(ctx, repo.ID); err != nil { + if repo, err = repo_model.GetRepositoryByID(ctx, repo.ID); err != nil { return fmt.Errorf("getRepositoryByID: %w", err) } diff --git a/modules/repository/init.go b/modules/repository/init.go index 65072a959948e..d82502d186fd9 100644 --- a/modules/repository/init.go +++ b/modules/repository/init.go @@ -415,7 +415,7 @@ func initRepository(ctx context.Context, repoPath string, u *user_model.User, re // Re-fetch the repository from database before updating it (else it would // override changes that were done earlier with sql) - if repo, err = repo_model.GetRepositoryByIDCtx(ctx, repo.ID); err != nil { + if repo, err = repo_model.GetRepositoryByID(ctx, repo.ID); err != nil { return fmt.Errorf("getRepositoryByID: %w", err) } diff --git a/modules/templates/helper.go b/modules/templates/helper.go index d0866d3e2c46f..e86d8cf1827b8 100644 --- a/modules/templates/helper.go +++ b/modules/templates/helper.go @@ -26,6 +26,7 @@ import ( activities_model "code.gitea.io/gitea/models/activities" "code.gitea.io/gitea/models/avatars" + "code.gitea.io/gitea/models/db" issues_model "code.gitea.io/gitea/models/issues" "code.gitea.io/gitea/models/organization" repo_model "code.gitea.io/gitea/models/repo" @@ -632,7 +633,7 @@ func Avatar(item interface{}, others ...interface{}) template.HTML { // AvatarByAction renders user avatars from action. args: action, size (int), class (string) func AvatarByAction(action *activities_model.Action, others ...interface{}) template.HTML { - action.LoadActUser() + action.LoadActUser(db.DefaultContext) return Avatar(action.ActUser, others...) } diff --git a/modules/test/context_tests.go b/modules/test/context_tests.go index 963f79c3c6b14..09e885d881c39 100644 --- a/modules/test/context_tests.go +++ b/modules/test/context_tests.go @@ -58,7 +58,7 @@ func LoadRepo(t *testing.T, ctx *context.Context, repoID int64) { ctx.Repo = &context.Repository{} ctx.Repo.Repository = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: repoID}) var err error - ctx.Repo.Owner, err = user_model.GetUserByID(ctx.Repo.Repository.OwnerID) + ctx.Repo.Owner, err = user_model.GetUserByID(ctx, ctx.Repo.Repository.OwnerID) assert.NoError(t, err) ctx.Repo.RepoLink = ctx.Repo.Repository.Link() ctx.Repo.Permission, err = access_model.GetUserRepoPermission(ctx, ctx.Repo.Repository, ctx.Doer) diff --git a/routers/api/packages/conan/auth.go b/routers/api/packages/conan/auth.go index 00855a97a47a2..1d1d2440fdbd0 100644 --- a/routers/api/packages/conan/auth.go +++ b/routers/api/packages/conan/auth.go @@ -31,7 +31,7 @@ func (a *Auth) Verify(req *http.Request, w http.ResponseWriter, store auth.DataS return nil } - u, err := user_model.GetUserByID(uid) + u, err := user_model.GetUserByID(req.Context(), uid) if err != nil { log.Error("GetUserByID: %v", err) return nil diff --git a/routers/api/packages/container/auth.go b/routers/api/packages/container/auth.go index 770068a3bfb7b..4e25e2d9a61de 100644 --- a/routers/api/packages/container/auth.go +++ b/routers/api/packages/container/auth.go @@ -35,7 +35,7 @@ func (a *Auth) Verify(req *http.Request, w http.ResponseWriter, store auth.DataS return user_model.NewGhostUser() } - u, err := user_model.GetUserByID(uid) + u, err := user_model.GetUserByID(req.Context(), uid) if err != nil { log.Error("GetUserByID: %v", err) return nil diff --git a/routers/api/packages/nuget/auth.go b/routers/api/packages/nuget/auth.go index 1dad45264855a..1d583990ec73a 100644 --- a/routers/api/packages/nuget/auth.go +++ b/routers/api/packages/nuget/auth.go @@ -30,7 +30,7 @@ func (a *Auth) Verify(req *http.Request, w http.ResponseWriter, store auth.DataS return nil } - u, err := user_model.GetUserByID(token.UID) + u, err := user_model.GetUserByID(req.Context(), token.UID) if err != nil { log.Error("GetUserByID: %v", err) return nil diff --git a/routers/api/v1/org/team.go b/routers/api/v1/org/team.go index b2bcc4d586084..bfe060998755a 100644 --- a/routers/api/v1/org/team.go +++ b/routers/api/v1/org/team.go @@ -547,7 +547,7 @@ func GetTeamRepos(ctx *context.APIContext) { ctx.Error(http.StatusInternalServerError, "GetTeamRepos", err) return } - repos[i] = convert.ToRepo(repo, access) + repos[i] = convert.ToRepo(ctx, repo, access) } ctx.SetTotalCountHeader(int64(team.NumRepos)) ctx.JSON(http.StatusOK, repos) @@ -599,7 +599,7 @@ func GetTeamRepo(ctx *context.APIContext) { return } - ctx.JSON(http.StatusOK, convert.ToRepo(repo, access)) + ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, access)) } // getRepositoryByParams get repository by a team's organization ID and repo name diff --git a/routers/api/v1/repo/fork.go b/routers/api/v1/repo/fork.go index c0a79d1a63286..686a5b5c7ae2a 100644 --- a/routers/api/v1/repo/fork.go +++ b/routers/api/v1/repo/fork.go @@ -64,7 +64,7 @@ func ListForks(ctx *context.APIContext) { ctx.Error(http.StatusInternalServerError, "AccessLevel", err) return } - apiForks[i] = convert.ToRepo(fork, access) + apiForks[i] = convert.ToRepo(ctx, fork, access) } ctx.SetTotalCountHeader(int64(ctx.Repo.Repository.NumForks)) @@ -151,5 +151,5 @@ func CreateFork(ctx *context.APIContext) { } // TODO change back to 201 - ctx.JSON(http.StatusAccepted, convert.ToRepo(fork, perm.AccessModeOwner)) + ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, fork, perm.AccessModeOwner)) } diff --git a/routers/api/v1/repo/hook.go b/routers/api/v1/repo/hook.go index 57fff7d3261b1..e6955b92b50ec 100644 --- a/routers/api/v1/repo/hook.go +++ b/routers/api/v1/repo/hook.go @@ -185,7 +185,7 @@ func TestHook(ctx *context.APIContext) { Commits: []*api.PayloadCommit{commit}, TotalCommits: 1, HeadCommit: commit, - Repo: convert.ToRepo(ctx.Repo.Repository, perm.AccessModeNone), + Repo: convert.ToRepo(ctx, ctx.Repo.Repository, perm.AccessModeNone), Pusher: convert.ToUserWithAccessMode(ctx.Doer, perm.AccessModeNone), Sender: convert.ToUserWithAccessMode(ctx.Doer, perm.AccessModeNone), }); err != nil { diff --git a/routers/api/v1/repo/issue.go b/routers/api/v1/repo/issue.go index 60f9859e107ad..24a47f021b6b3 100644 --- a/routers/api/v1/repo/issue.go +++ b/routers/api/v1/repo/issue.go @@ -624,7 +624,7 @@ func CreateIssue(ctx *context.APIContext) { // Check if the passed assignees is assignable for _, aID := range assigneeIDs { - assignee, err := user_model.GetUserByID(aID) + assignee, err := user_model.GetUserByID(ctx, aID) if err != nil { ctx.Error(http.StatusInternalServerError, "GetUserByID", err) return diff --git a/routers/api/v1/repo/issue_comment.go b/routers/api/v1/repo/issue_comment.go index a5da09172797e..d5a2d557a32d1 100644 --- a/routers/api/v1/repo/issue_comment.go +++ b/routers/api/v1/repo/issue_comment.go @@ -200,7 +200,7 @@ func isXRefCommentAccessible(ctx stdCtx.Context, user *user_model.User, c *issue if issues_model.CommentTypeIsRef(c.Type) && c.RefRepoID != issueRepoID && c.RefRepoID != 0 { var err error // Set RefRepo for description in template - c.RefRepo, err = repo_model.GetRepositoryByIDCtx(ctx, c.RefRepoID) + c.RefRepo, err = repo_model.GetRepositoryByID(ctx, c.RefRepoID) if err != nil { return false } diff --git a/routers/api/v1/repo/key.go b/routers/api/v1/repo/key.go index 14f6aa614867d..b156c60e20840 100644 --- a/routers/api/v1/repo/key.go +++ b/routers/api/v1/repo/key.go @@ -6,6 +6,7 @@ package repo import ( + stdCtx "context" "fmt" "net/http" "net/url" @@ -24,16 +25,16 @@ import ( ) // appendPrivateInformation appends the owner and key type information to api.PublicKey -func appendPrivateInformation(apiKey *api.DeployKey, key *asymkey_model.DeployKey, repository *repo_model.Repository) (*api.DeployKey, error) { +func appendPrivateInformation(ctx stdCtx.Context, apiKey *api.DeployKey, key *asymkey_model.DeployKey, repository *repo_model.Repository) (*api.DeployKey, error) { apiKey.ReadOnly = key.Mode == perm.AccessModeRead if repository.ID == key.RepoID { - apiKey.Repository = convert.ToRepo(repository, key.Mode) + apiKey.Repository = convert.ToRepo(ctx, repository, key.Mode) } else { - repo, err := repo_model.GetRepositoryByID(key.RepoID) + repo, err := repo_model.GetRepositoryByID(ctx, key.RepoID) if err != nil { return apiKey, err } - apiKey.Repository = convert.ToRepo(repo, key.Mode) + apiKey.Repository = convert.ToRepo(ctx, repo, key.Mode) } return apiKey, nil } @@ -108,7 +109,7 @@ func ListDeployKeys(ctx *context.APIContext) { } apiKeys[i] = convert.ToDeployKey(apiLink, keys[i]) if ctx.Doer.IsAdmin || ((ctx.Repo.Repository.ID == keys[i].RepoID) && (ctx.Doer.ID == ctx.Repo.Owner.ID)) { - apiKeys[i], _ = appendPrivateInformation(apiKeys[i], keys[i], ctx.Repo.Repository) + apiKeys[i], _ = appendPrivateInformation(ctx, apiKeys[i], keys[i], ctx.Repo.Repository) } } @@ -162,7 +163,7 @@ func GetDeployKey(ctx *context.APIContext) { apiLink := composeDeployKeysAPILink(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name) apiKey := convert.ToDeployKey(apiLink, key) if ctx.Doer.IsAdmin || ((ctx.Repo.Repository.ID == key.RepoID) && (ctx.Doer.ID == ctx.Repo.Owner.ID)) { - apiKey, _ = appendPrivateInformation(apiKey, key, ctx.Repo.Repository) + apiKey, _ = appendPrivateInformation(ctx, apiKey, key, ctx.Repo.Repository) } ctx.JSON(http.StatusOK, apiKey) } diff --git a/routers/api/v1/repo/migrate.go b/routers/api/v1/repo/migrate.go index aeef862b1f8a3..e0cfabd143633 100644 --- a/routers/api/v1/repo/migrate.go +++ b/routers/api/v1/repo/migrate.go @@ -67,7 +67,7 @@ func Migrate(ctx *context.APIContext) { if len(form.RepoOwner) != 0 { repoOwner, err = user_model.GetUserByName(ctx, form.RepoOwner) } else if form.RepoOwnerID != 0 { - repoOwner, err = user_model.GetUserByID(form.RepoOwnerID) + repoOwner, err = user_model.GetUserByID(ctx, form.RepoOwnerID) } else { repoOwner = ctx.Doer } @@ -212,7 +212,7 @@ func Migrate(ctx *context.APIContext) { } log.Trace("Repository migrated: %s/%s", repoOwner.Name, form.RepoName) - ctx.JSON(http.StatusCreated, convert.ToRepo(repo, perm.AccessModeAdmin)) + ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, perm.AccessModeAdmin)) } func handleMigrateError(ctx *context.APIContext, repoOwner *user_model.User, remoteAddr string, err error) { diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go index fba7ed646274f..e43f7263723b1 100644 --- a/routers/api/v1/repo/pull.go +++ b/routers/api/v1/repo/pull.go @@ -400,7 +400,7 @@ func CreatePullRequest(ctx *context.APIContext) { } // Check if the passed assignees is assignable for _, aID := range assigneeIDs { - assignee, err := user_model.GetUserByIDCtx(ctx, aID) + assignee, err := user_model.GetUserByID(ctx, aID) if err != nil { ctx.Error(http.StatusInternalServerError, "GetUserByID", err) return diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 29febe751cb91..2828b762a6b00 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -216,7 +216,7 @@ func Search(ctx *context.APIContext) { Error: err.Error(), }) } - results[i] = convert.ToRepo(repo, accessMode) + results[i] = convert.ToRepo(ctx, repo, accessMode) } ctx.SetLinkHeader(int(count), opts.PageSize) ctx.SetTotalCountHeader(count) @@ -258,12 +258,12 @@ func CreateUserRepo(ctx *context.APIContext, owner *user_model.User, opt api.Cre } // reload repo from db to get a real state after creation - repo, err = repo_model.GetRepositoryByID(repo.ID) + repo, err = repo_model.GetRepositoryByID(ctx, repo.ID) if err != nil { ctx.Error(http.StatusInternalServerError, "GetRepositoryByID", err) } - ctx.JSON(http.StatusCreated, convert.ToRepo(repo, perm.AccessModeOwner)) + ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, perm.AccessModeOwner)) } // Create one repository of mine @@ -408,7 +408,7 @@ func Generate(ctx *context.APIContext) { } log.Trace("Repository generated [%d]: %s/%s", repo.ID, ctxUser.Name, repo.Name) - ctx.JSON(http.StatusCreated, convert.ToRepo(repo, perm.AccessModeOwner)) + ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, repo, perm.AccessModeOwner)) } // CreateOrgRepoDeprecated create one repository of the organization @@ -524,7 +524,7 @@ func Get(ctx *context.APIContext) { return } - ctx.JSON(http.StatusOK, convert.ToRepo(ctx.Repo.Repository, ctx.Repo.AccessMode)) + ctx.JSON(http.StatusOK, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Repo.AccessMode)) } // GetByID returns a single Repository @@ -545,7 +545,7 @@ func GetByID(ctx *context.APIContext) { // "200": // "$ref": "#/responses/Repository" - repo, err := repo_model.GetRepositoryByID(ctx.ParamsInt64(":id")) + repo, err := repo_model.GetRepositoryByID(ctx, ctx.ParamsInt64(":id")) if err != nil { if repo_model.IsErrRepoNotExist(err) { ctx.NotFound() @@ -563,7 +563,7 @@ func GetByID(ctx *context.APIContext) { ctx.NotFound() return } - ctx.JSON(http.StatusOK, convert.ToRepo(repo, perm.AccessMode)) + ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, perm.AccessMode)) } // Edit edit repository properties @@ -619,13 +619,13 @@ func Edit(ctx *context.APIContext) { } } - repo, err := repo_model.GetRepositoryByID(ctx.Repo.Repository.ID) + repo, err := repo_model.GetRepositoryByID(ctx, ctx.Repo.Repository.ID) if err != nil { ctx.InternalServerError(err) return } - ctx.JSON(http.StatusOK, convert.ToRepo(repo, ctx.Repo.AccessMode)) + ctx.JSON(http.StatusOK, convert.ToRepo(ctx, repo, ctx.Repo.AccessMode)) } // updateBasicProperties updates the basic properties of a repo: Name, Description, Website and Visibility @@ -670,7 +670,7 @@ func updateBasicProperties(ctx *context.APIContext, opts api.EditRepoOption) err if opts.Private != nil { // Visibility of forked repository is forced sync with base repository. if repo.IsFork { - if err := repo.GetBaseRepo(); err != nil { + if err := repo.GetBaseRepo(ctx); err != nil { ctx.Error(http.StatusInternalServerError, "Unable to load base repository", err) return err } diff --git a/routers/api/v1/repo/status.go b/routers/api/v1/repo/status.go index 97ef69a6ea6db..90e8dadaebccb 100644 --- a/routers/api/v1/repo/status.go +++ b/routers/api/v1/repo/status.go @@ -67,7 +67,7 @@ func NewCommitStatus(ctx *context.APIContext) { return } - ctx.JSON(http.StatusCreated, convert.ToCommitStatus(status)) + ctx.JSON(http.StatusCreated, convert.ToCommitStatus(ctx, status)) } // GetCommitStatuses returns all statuses for any given commit hash @@ -200,7 +200,7 @@ func getCommitStatuses(ctx *context.APIContext, sha string) { apiStatuses := make([]*api.CommitStatus, 0, len(statuses)) for _, status := range statuses { - apiStatuses = append(apiStatuses, convert.ToCommitStatus(status)) + apiStatuses = append(apiStatuses, convert.ToCommitStatus(ctx, status)) } ctx.SetLinkHeader(int(maxResults), listOptions.PageSize) @@ -264,7 +264,7 @@ func GetCombinedCommitStatusByRef(ctx *context.APIContext) { return } - combiStatus := convert.ToCombinedStatus(statuses, convert.ToRepo(repo, ctx.Repo.AccessMode)) + combiStatus := convert.ToCombinedStatus(ctx, statuses, convert.ToRepo(ctx, repo, ctx.Repo.AccessMode)) ctx.SetTotalCountHeader(count) ctx.JSON(http.StatusOK, combiStatus) diff --git a/routers/api/v1/repo/transfer.go b/routers/api/v1/repo/transfer.go index 067a4ebe194b5..e7f7d85df338b 100644 --- a/routers/api/v1/repo/transfer.go +++ b/routers/api/v1/repo/transfer.go @@ -123,12 +123,12 @@ func Transfer(ctx *context.APIContext) { if ctx.Repo.Repository.Status == repo_model.RepositoryPendingTransfer { log.Trace("Repository transfer initiated: %s -> %s", oldFullname, ctx.Repo.Repository.FullName()) - ctx.JSON(http.StatusCreated, convert.ToRepo(ctx.Repo.Repository, perm.AccessModeAdmin)) + ctx.JSON(http.StatusCreated, convert.ToRepo(ctx, ctx.Repo.Repository, perm.AccessModeAdmin)) return } log.Trace("Repository transferred: %s -> %s", oldFullname, ctx.Repo.Repository.FullName()) - ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx.Repo.Repository, perm.AccessModeAdmin)) + ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, ctx.Repo.Repository, perm.AccessModeAdmin)) } // AcceptTransfer accept a repo transfer @@ -166,7 +166,7 @@ func AcceptTransfer(ctx *context.APIContext) { return } - ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx.Repo.Repository, ctx.Repo.AccessMode)) + ctx.JSON(http.StatusAccepted, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Repo.AccessMode)) } // RejectTransfer reject a repo transfer @@ -204,7 +204,7 @@ func RejectTransfer(ctx *context.APIContext) { return } - ctx.JSON(http.StatusOK, convert.ToRepo(ctx.Repo.Repository, ctx.Repo.AccessMode)) + ctx.JSON(http.StatusOK, convert.ToRepo(ctx, ctx.Repo.Repository, ctx.Repo.AccessMode)) } func acceptOrRejectRepoTransfer(ctx *context.APIContext, accept bool) error { diff --git a/routers/api/v1/user/key.go b/routers/api/v1/user/key.go index 71a2c910a6a31..dab5b4a114a8c 100644 --- a/routers/api/v1/user/key.go +++ b/routers/api/v1/user/key.go @@ -8,6 +8,7 @@ import ( "net/http" asymkey_model "code.gitea.io/gitea/models/asymkey" + "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" @@ -30,7 +31,7 @@ func appendPrivateInformation(apiKey *api.PublicKey, key *asymkey_model.PublicKe if defaultUser.ID == key.OwnerID { apiKey.Owner = convert.ToUser(defaultUser, defaultUser) } else { - user, err := user_model.GetUserByID(key.OwnerID) + user, err := user_model.GetUserByID(db.DefaultContext, key.OwnerID) if err != nil { return apiKey, err } diff --git a/routers/api/v1/user/repo.go b/routers/api/v1/user/repo.go index d1917a9938bae..66a92a7e56f76 100644 --- a/routers/api/v1/user/repo.go +++ b/routers/api/v1/user/repo.go @@ -45,7 +45,7 @@ func listUserRepos(ctx *context.APIContext, u *user_model.User, private bool) { return } if ctx.IsSigned && ctx.Doer.IsAdmin || access >= perm.AccessModeRead { - apiRepos = append(apiRepos, convert.ToRepo(repos[i], access)) + apiRepos = append(apiRepos, convert.ToRepo(ctx, repos[i], access)) } } @@ -128,7 +128,7 @@ func ListMyRepos(ctx *context.APIContext) { if err != nil { ctx.Error(http.StatusInternalServerError, "AccessLevel", err) } - results[i] = convert.ToRepo(repo, accessMode) + results[i] = convert.ToRepo(ctx, repo, accessMode) } ctx.SetLinkHeader(int(count), opts.ListOptions.PageSize) diff --git a/routers/api/v1/user/star.go b/routers/api/v1/user/star.go index 96748c630d6b4..7d68c5222b247 100644 --- a/routers/api/v1/user/star.go +++ b/routers/api/v1/user/star.go @@ -33,7 +33,7 @@ func getStarredRepos(ctx std_context.Context, user *user_model.User, private boo if err != nil { return nil, err } - repos[i] = convert.ToRepo(starred, access) + repos[i] = convert.ToRepo(ctx, starred, access) } return repos, nil } diff --git a/routers/api/v1/user/watch.go b/routers/api/v1/user/watch.go index 7765a399f381e..4ed051b3220a1 100644 --- a/routers/api/v1/user/watch.go +++ b/routers/api/v1/user/watch.go @@ -31,7 +31,7 @@ func getWatchedRepos(ctx std_context.Context, user *user_model.User, private boo if err != nil { return nil, 0, err } - repos[i] = convert.ToRepo(watched, access) + repos[i] = convert.ToRepo(ctx, watched, access) } return repos, total, nil } diff --git a/routers/private/hook_post_receive.go b/routers/private/hook_post_receive.go index 1370e5302b71d..e2db09bfaecba 100644 --- a/routers/private/hook_post_receive.go +++ b/routers/private/hook_post_receive.go @@ -184,7 +184,7 @@ func HookPostReceive(ctx *gitea_context.PrivateContext) { baseRepo = repo if repo.IsFork { - if err := repo.GetBaseRepo(); err != nil { + if err := repo.GetBaseRepo(ctx); err != nil { log.Error("Failed to get Base Repository of Forked repository: %-v Error: %v", repo, err) ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{ Err: fmt.Sprintf("Failed to get Base Repository of Forked repository: %-v Error: %v", repo, err), diff --git a/routers/private/hook_pre_receive.go b/routers/private/hook_pre_receive.go index 86bdf60ab98b7..afcdd256f5314 100644 --- a/routers/private/hook_pre_receive.go +++ b/routers/private/hook_pre_receive.go @@ -465,7 +465,7 @@ func (ctx *preReceiveContext) loadPusherAndPermission() bool { return true } - user, err := user_model.GetUserByID(ctx.opts.UserID) + user, err := user_model.GetUserByID(ctx, ctx.opts.UserID) if err != nil { log.Error("Unable to get User id %d Error: %v", ctx.opts.UserID, err) ctx.JSON(http.StatusInternalServerError, private.Response{ diff --git a/routers/private/internal_repo.go b/routers/private/internal_repo.go index c50d2a01a72a0..4a545f9196d1b 100644 --- a/routers/private/internal_repo.go +++ b/routers/private/internal_repo.go @@ -69,7 +69,7 @@ func RepoAssignment(ctx *gitea_context.PrivateContext) context.CancelFunc { } func loadRepository(ctx *gitea_context.PrivateContext, ownerName, repoName string) *repo_model.Repository { - repo, err := repo_model.GetRepositoryByOwnerAndName(ownerName, repoName) + repo, err := repo_model.GetRepositoryByOwnerAndName(ctx, ownerName, repoName) if err != nil { log.Error("Failed to get repository: %s/%s Error: %v", ownerName, repoName, err) ctx.JSON(http.StatusInternalServerError, map[string]interface{}{ diff --git a/routers/private/serv.go b/routers/private/serv.go index ddb2e6aa8bff5..986dd4558fcd1 100644 --- a/routers/private/serv.go +++ b/routers/private/serv.go @@ -52,7 +52,7 @@ func ServNoCommand(ctx *context.PrivateContext) { results.Key = key if key.Type == asymkey_model.KeyTypeUser || key.Type == asymkey_model.KeyTypePrincipal { - user, err := user_model.GetUserByID(key.OwnerID) + user, err := user_model.GetUserByID(ctx, key.OwnerID) if err != nil { if user_model.IsErrUserNotExist(err) { ctx.JSON(http.StatusUnauthorized, private.Response{ @@ -260,7 +260,7 @@ func ServCommand(ctx *context.PrivateContext) { } else { // Get the user represented by the Key var err error - user, err = user_model.GetUserByID(key.OwnerID) + user, err = user_model.GetUserByID(ctx, key.OwnerID) if err != nil { if user_model.IsErrUserNotExist(err) { ctx.JSON(http.StatusUnauthorized, private.ErrServCommand{ diff --git a/routers/web/admin/repos.go b/routers/web/admin/repos.go index 17b00975ec0cf..8c458ac1e8e9f 100644 --- a/routers/web/admin/repos.go +++ b/routers/web/admin/repos.go @@ -42,7 +42,7 @@ func Repos(ctx *context.Context) { // DeleteRepo delete one repository func DeleteRepo(ctx *context.Context) { - repo, err := repo_model.GetRepositoryByID(ctx.FormInt64("id")) + repo, err := repo_model.GetRepositoryByID(ctx, ctx.FormInt64("id")) if err != nil { ctx.ServerError("GetRepositoryByID", err) return diff --git a/routers/web/admin/users.go b/routers/web/admin/users.go index 5cdfb8142ee89..d22f3af521dcc 100644 --- a/routers/web/admin/users.go +++ b/routers/web/admin/users.go @@ -207,7 +207,7 @@ func NewUserPost(ctx *context.Context) { } func prepareUserInfo(ctx *context.Context) *user_model.User { - u, err := user_model.GetUserByID(ctx.ParamsInt64(":userid")) + u, err := user_model.GetUserByID(ctx, ctx.ParamsInt64(":userid")) if err != nil { if user_model.IsErrUserNotExist(err) { ctx.Redirect(setting.AppSubURL + "/admin/users") @@ -414,7 +414,7 @@ func EditUserPost(ctx *context.Context) { // DeleteUser response for deleting a user func DeleteUser(ctx *context.Context) { - u, err := user_model.GetUserByID(ctx.ParamsInt64(":userid")) + u, err := user_model.GetUserByID(ctx, ctx.ParamsInt64(":userid")) if err != nil { ctx.ServerError("GetUserByID", err) return diff --git a/routers/web/auth/2fa.go b/routers/web/auth/2fa.go index c61922cd9da09..58551d659b077 100644 --- a/routers/web/auth/2fa.go +++ b/routers/web/auth/2fa.go @@ -69,7 +69,7 @@ func TwoFactorPost(ctx *context.Context) { if ok && twofa.LastUsedPasscode != form.Passcode { remember := ctx.Session.Get("twofaRemember").(bool) - u, err := user_model.GetUserByID(id) + u, err := user_model.GetUserByID(ctx, id) if err != nil { ctx.ServerError("UserSignIn", err) return @@ -147,7 +147,7 @@ func TwoFactorScratchPost(ctx *context.Context) { } remember := ctx.Session.Get("twofaRemember").(bool) - u, err := user_model.GetUserByID(id) + u, err := user_model.GetUserByID(ctx, id) if err != nil { ctx.ServerError("UserSignIn", err) return diff --git a/routers/web/auth/auth.go b/routers/web/auth/auth.go index 2919fd351366d..fe4d6aea519f1 100644 --- a/routers/web/auth/auth.go +++ b/routers/web/auth/auth.go @@ -773,7 +773,7 @@ func ActivateEmail(ctx *context.Context) { log.Trace("Email activated: %s", email.Email) ctx.Flash.Success(ctx.Tr("settings.add_email_success")) - if u, err := user_model.GetUserByID(email.UID); err != nil { + if u, err := user_model.GetUserByID(ctx, email.UID); err != nil { log.Warn("GetUserByID: %d", email.UID) } else if setting.CacheService.Enabled { // Allow user to validate more emails diff --git a/routers/web/auth/oauth.go b/routers/web/auth/oauth.go index d845f21a33012..02eef904461fd 100644 --- a/routers/web/auth/oauth.go +++ b/routers/web/auth/oauth.go @@ -195,7 +195,7 @@ func newAccessTokenResponse(ctx stdContext.Context, grant *auth.OAuth2Grant, ser ErrorDescription: "cannot find application", } } - user, err := user_model.GetUserByID(grant.UserID) + user, err := user_model.GetUserByID(ctx, grant.UserID) if err != nil { if user_model.IsErrUserNotExist(err) { return nil, &AccessTokenError{ @@ -386,7 +386,7 @@ func AuthorizeOAuth(ctx *context.Context) { var user *user_model.User if app.UID != 0 { - user, err = user_model.GetUserByID(app.UID) + user, err = user_model.GetUserByID(ctx, app.UID) if err != nil { ctx.ServerError("GetUserByID", err) return @@ -1223,7 +1223,7 @@ func oAuth2UserLoginCallback(authSource *auth.Source, request *http.Request, res return nil, goth.User{}, err } if hasUser { - user, err = user_model.GetUserByID(externalLoginUser.UserID) + user, err = user_model.GetUserByID(request.Context(), externalLoginUser.UserID) return user, gothUser, err } diff --git a/routers/web/auth/webauthn.go b/routers/web/auth/webauthn.go index 917cbdd57bf67..68e8fc624086d 100644 --- a/routers/web/auth/webauthn.go +++ b/routers/web/auth/webauthn.go @@ -50,7 +50,7 @@ func WebAuthnLoginAssertion(ctx *context.Context) { return } - user, err := user_model.GetUserByID(idSess) + user, err := user_model.GetUserByID(ctx, idSess) if err != nil { ctx.ServerError("UserSignIn", err) return @@ -92,7 +92,7 @@ func WebAuthnLoginAssertionPost(ctx *context.Context) { }() // Load the user from the db - user, err := user_model.GetUserByID(idSess) + user, err := user_model.GetUserByID(ctx, idSess) if err != nil { ctx.ServerError("UserSignIn", err) return diff --git a/routers/web/feed/convert.go b/routers/web/feed/convert.go index c6fc352b647f8..f5c5c22e87fc4 100644 --- a/routers/web/feed/convert.go +++ b/routers/web/feed/convert.go @@ -69,7 +69,7 @@ func renderMarkdown(ctx *context.Context, act *activities_model.Action, content // feedActionsToFeedItems convert gitea's Action feed to feeds Item func feedActionsToFeedItems(ctx *context.Context, actions activities_model.ActionList) (items []*feeds.Item, err error) { for _, act := range actions { - act.LoadActUser() + act.LoadActUser(ctx) var content, desc, title string diff --git a/routers/web/goget.go b/routers/web/goget.go index a58739fe42a3c..9af4c45e011f3 100644 --- a/routers/web/goget.go +++ b/routers/web/goget.go @@ -53,7 +53,7 @@ func goGet(ctx *context.Context) { } branchName := setting.Repository.DefaultBranch - repo, err := repo_model.GetRepositoryByOwnerAndName(ownerName, repoName) + repo, err := repo_model.GetRepositoryByOwnerAndName(ctx, ownerName, repoName) if err == nil && len(repo.DefaultBranch) > 0 { branchName = repo.DefaultBranch } diff --git a/routers/web/org/teams.go b/routers/web/org/teams.go index 399d07fe47b90..08b5ef21d4024 100644 --- a/routers/web/org/teams.go +++ b/routers/web/org/teams.go @@ -50,7 +50,7 @@ func Teams(ctx *context.Context) { ctx.Data["PageIsOrgTeams"] = true for _, t := range ctx.Org.Teams { - if err := t.GetMembersCtx(ctx); err != nil { + if err := t.LoadMembers(ctx); err != nil { ctx.ServerError("GetMembers", err) return } @@ -347,7 +347,7 @@ func TeamMembers(ctx *context.Context) { ctx.Data["Title"] = ctx.Org.Team.Name ctx.Data["PageIsOrgTeams"] = true ctx.Data["PageIsOrgTeamMembers"] = true - if err := ctx.Org.Team.GetMembersCtx(ctx); err != nil { + if err := ctx.Org.Team.LoadMembers(ctx); err != nil { ctx.ServerError("GetMembers", err) return } @@ -369,7 +369,7 @@ func TeamRepositories(ctx *context.Context) { ctx.Data["Title"] = ctx.Org.Team.Name ctx.Data["PageIsOrgTeams"] = true ctx.Data["PageIsOrgTeamRepos"] = true - if err := ctx.Org.Team.GetRepositoriesCtx(ctx); err != nil { + if err := ctx.Org.Team.LoadRepositories(ctx); err != nil { ctx.ServerError("GetRepositories", err) return } @@ -571,7 +571,7 @@ func getTeamInviteFromContext(ctx *context.Context) (*org_model.TeamInvite, *org return nil, nil, nil, nil, err } - inviter, err := user_model.GetUserByIDCtx(ctx, invite.InviterID) + inviter, err := user_model.GetUserByID(ctx, invite.InviterID) if err != nil { return nil, nil, nil, nil, err } @@ -581,7 +581,7 @@ func getTeamInviteFromContext(ctx *context.Context) (*org_model.TeamInvite, *org return nil, nil, nil, nil, err } - org, err := user_model.GetUserByIDCtx(ctx, team.OrgID) + org, err := user_model.GetUserByID(ctx, team.OrgID) if err != nil { return nil, nil, nil, nil, err } diff --git a/routers/web/repo/attachment.go b/routers/web/repo/attachment.go index 190dc6c2c7517..9dff85d0b77b3 100644 --- a/routers/web/repo/attachment.go +++ b/routers/web/repo/attachment.go @@ -95,7 +95,7 @@ func GetAttachment(ctx *context.Context) { return } - repository, unitType, err := repo_service.LinkedRepository(attach) + repository, unitType, err := repo_service.LinkedRepository(ctx, attach) if err != nil { ctx.ServerError("LinkedRepository", err) return diff --git a/routers/web/repo/branch.go b/routers/web/repo/branch.go index a7588d275d4a5..46578976f473c 100644 --- a/routers/web/repo/branch.go +++ b/routers/web/repo/branch.go @@ -334,7 +334,7 @@ func getDeletedBranches(ctx *context.Context) ([]*Branch, error) { } for i := range deletedBranches { - deletedBranches[i].LoadUser() + deletedBranches[i].LoadUser(ctx) branches = append(branches, &Branch{ Name: deletedBranches[i].Name, IsDeleted: true, diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 0fb8e44725245..2f19db9a5556f 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -270,7 +270,7 @@ func ParseCompareInfo(ctx *context.Context) *CompareInfo { ci.HeadRepo = baseRepo } } else { - ci.HeadRepo, err = repo_model.GetRepositoryByOwnerAndName(headInfosSplit[0], headInfosSplit[1]) + ci.HeadRepo, err = repo_model.GetRepositoryByOwnerAndName(ctx, headInfosSplit[0], headInfosSplit[1]) if err != nil { if repo_model.IsErrRepoNotExist(err) { ctx.NotFound("GetRepositoryByOwnerAndName", nil) @@ -340,7 +340,7 @@ func ParseCompareInfo(ctx *context.Context) *CompareInfo { // forked from var rootRepo *repo_model.Repository if baseRepo.IsFork { - err = baseRepo.GetBaseRepo() + err = baseRepo.GetBaseRepo(ctx) if err != nil { if !repo_model.IsErrRepoNotExist(err) { ctx.ServerError("Unable to find root repo", err) diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index a62084fdcac72..c9ab9e9e09ff1 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -1004,7 +1004,7 @@ func ValidateRepoMetas(ctx *context.Context, form forms.CreateIssueForm, isPull // Check if the passed assignees actually exists and is assignable for _, aID := range assigneeIDs { - assignee, err := user_model.GetUserByID(aID) + assignee, err := user_model.GetUserByID(ctx, aID) if err != nil { ctx.ServerError("GetUserByID", err) return nil, nil, 0, 0 @@ -1676,7 +1676,7 @@ func ViewIssue(ctx *context.Context) { } ctx.Data["DefaultSquashMergeMessage"] = defaultSquashMergeMessage - if err = pull.LoadProtectedBranch(); err != nil { + if err = pull.LoadProtectedBranch(ctx); err != nil { ctx.ServerError("LoadProtectedBranch", err) return } @@ -2059,7 +2059,7 @@ func UpdateIssueAssignee(ctx *context.Context) { return } default: - assignee, err := user_model.GetUserByID(assigneeID) + assignee, err := user_model.GetUserByID(ctx, assigneeID) if err != nil { ctx.ServerError("GetUserByID", err) return @@ -2170,7 +2170,7 @@ func UpdatePullReviewRequest(ctx *context.Context) { continue } - reviewer, err := user_model.GetUserByID(reviewID) + reviewer, err := user_model.GetUserByID(ctx, reviewID) if err != nil { if user_model.IsErrUserNotExist(err) { log.Warn( @@ -3024,7 +3024,7 @@ func filterXRefComments(ctx *context.Context, issue *issues_model.Issue) error { if issues_model.CommentTypeIsRef(c.Type) && c.RefRepoID != issue.RepoID && c.RefRepoID != 0 { var err error // Set RefRepo for description in template - c.RefRepo, err = repo_model.GetRepositoryByID(c.RefRepoID) + c.RefRepo, err = repo_model.GetRepositoryByID(ctx, c.RefRepoID) if err != nil { return err } diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go index 870bc1773b967..68bacdc569c2a 100644 --- a/routers/web/repo/pull.go +++ b/routers/web/repo/pull.go @@ -79,7 +79,7 @@ var pullRequestTemplateCandidates = []string{ } func getRepository(ctx *context.Context, repoID int64) *repo_model.Repository { - repo, err := repo_model.GetRepositoryByID(repoID) + repo, err := repo_model.GetRepositoryByID(ctx, repoID) if err != nil { if repo_model.IsErrRepoNotExist(err) { ctx.NotFound("GetRepositoryByID", nil) @@ -160,7 +160,7 @@ func getForkRepository(ctx *context.Context) *repo_model.Repository { if !traverseParentRepo.IsFork { break } - traverseParentRepo, err = repo_model.GetRepositoryByID(traverseParentRepo.ForkID) + traverseParentRepo, err = repo_model.GetRepositoryByID(ctx, traverseParentRepo.ForkID) if err != nil { ctx.ServerError("GetRepositoryByID", err) return nil @@ -228,7 +228,7 @@ func ForkPost(ctx *context.Context) { if !traverseParentRepo.IsFork { break } - traverseParentRepo, err = repo_model.GetRepositoryByID(traverseParentRepo.ForkID) + traverseParentRepo, err = repo_model.GetRepositoryByID(ctx, traverseParentRepo.ForkID) if err != nil { ctx.ServerError("GetRepositoryByID", err) return @@ -428,7 +428,7 @@ func PrepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C setMergeTarget(ctx, pull) - if err := pull.LoadProtectedBranch(); err != nil { + if err := pull.LoadProtectedBranch(ctx); err != nil { ctx.ServerError("LoadProtectedBranch", err) return nil } @@ -740,7 +740,7 @@ func ViewPullFiles(ctx *context.Context) { return } - if err = pull.LoadProtectedBranch(); err != nil { + if err = pull.LoadProtectedBranch(ctx); err != nil { ctx.ServerError("LoadProtectedBranch", err) return } diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index 0373d5b158d1a..88caacde00dc8 100644 --- a/routers/web/repo/release.go +++ b/routers/web/repo/release.go @@ -157,7 +157,7 @@ func releasesOrTags(ctx *context.Context, isTagList bool) { for _, r := range releases { if r.Publisher, ok = cacheUsers[r.PublisherID]; !ok { - r.Publisher, err = user_model.GetUserByID(r.PublisherID) + r.Publisher, err = user_model.GetUserByID(ctx, r.PublisherID) if err != nil { if user_model.IsErrUserNotExist(err) { r.Publisher = user_model.NewGhostUser() @@ -224,7 +224,7 @@ func SingleRelease(ctx *context.Context) { return } - release.Publisher, err = user_model.GetUserByID(release.PublisherID) + release.Publisher, err = user_model.GetUserByID(ctx, release.PublisherID) if err != nil { if user_model.IsErrUserNotExist(err) { release.Publisher = user_model.NewGhostUser() diff --git a/routers/web/repo/repo.go b/routers/web/repo/repo.go index 7bcca1d02a9a5..d3d530ace6e74 100644 --- a/routers/web/repo/repo.go +++ b/routers/web/repo/repo.go @@ -84,7 +84,7 @@ func checkContextUser(ctx *context.Context, uid int64) *user_model.User { return ctx.Doer } - org, err := user_model.GetUserByID(uid) + org, err := user_model.GetUserByID(ctx, uid) if user_model.IsErrUserNotExist(err) { return ctx.Doer } @@ -150,7 +150,7 @@ func Create(ctx *context.Context) { ctx.Data["repo_template_name"] = ctx.Tr("repo.template_select") templateID := ctx.FormInt64("template_id") if templateID > 0 { - templateRepo, err := repo_model.GetRepositoryByID(templateID) + templateRepo, err := repo_model.GetRepositoryByID(ctx, templateID) if err == nil && access_model.CheckRepoUnitUser(ctx, templateRepo, ctxUser, unit.TypeCode) { ctx.Data["repo_template"] = templateID ctx.Data["repo_template_name"] = templateRepo.Name diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 7500dbb34bb35..91602024442a3 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -453,7 +453,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st return } if lfsLock != nil { - u, err := user_model.GetUserByID(lfsLock.OwnerID) + u, err := user_model.GetUserByID(ctx, lfsLock.OwnerID) if err != nil { ctx.ServerError("GetTreePathLock", err) return diff --git a/routers/web/repo/webhook.go b/routers/web/repo/webhook.go index 5496496e80fd2..dcb6f9f692d1b 100644 --- a/routers/web/repo/webhook.go +++ b/routers/web/repo/webhook.go @@ -685,7 +685,7 @@ func TestWebhook(ctx *context.Context) { Commits: []*api.PayloadCommit{apiCommit}, TotalCommits: 1, HeadCommit: apiCommit, - Repo: convert.ToRepo(ctx.Repo.Repository, perm.AccessModeNone), + Repo: convert.ToRepo(ctx, ctx.Repo.Repository, perm.AccessModeNone), Pusher: apiUser, Sender: apiUser, } diff --git a/routers/web/user/package.go b/routers/web/user/package.go index 7179e2df97a76..6a2a2dcd6f0ef 100644 --- a/routers/web/user/package.go +++ b/routers/web/user/package.go @@ -337,7 +337,7 @@ func PackageSettingsPost(ctx *context.Context) { success := func() bool { repoID := int64(0) if form.RepoID != 0 { - repo, err := repo_model.GetRepositoryByID(form.RepoID) + repo, err := repo_model.GetRepositoryByID(ctx, form.RepoID) if err != nil { log.Error("Error getting repository: %v", err) return false diff --git a/routers/web/user/setting/profile.go b/routers/web/user/setting/profile.go index ba3f5b5080d9b..ea5571f71f983 100644 --- a/routers/web/user/setting/profile.go +++ b/routers/web/user/setting/profile.go @@ -324,7 +324,7 @@ func Repos(ctx *context.Context) { } for _, repo := range userRepos { if repo.IsFork { - if err := repo.GetBaseRepo(); err != nil { + if err := repo.GetBaseRepo(ctx); err != nil { ctx.ServerError("GetBaseRepo", err) return } @@ -343,7 +343,7 @@ func Repos(ctx *context.Context) { for i := range repos { if repos[i].IsFork { - if err := repos[i].GetBaseRepo(); err != nil { + if err := repos[i].GetBaseRepo(ctx); err != nil { ctx.ServerError("GetBaseRepo", err) return } diff --git a/services/agit/agit.go b/services/agit/agit.go index 803ff696b0eb8..81943dc9f412a 100644 --- a/services/agit/agit.go +++ b/services/agit/agit.go @@ -116,7 +116,7 @@ func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git. description = opts.GitPushOptions["description"] } - pusher, err := user_model.GetUserByID(opts.UserID) + pusher, err := user_model.GetUserByID(ctx, opts.UserID) if err != nil { return nil, fmt.Errorf("Failed to get user. Error: %w", err) } @@ -199,7 +199,7 @@ func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git. } pull_service.AddToTaskQueue(pr) - pusher, err := user_model.GetUserByID(opts.UserID) + pusher, err := user_model.GetUserByID(ctx, opts.UserID) if err != nil { return nil, fmt.Errorf("Failed to get user. Error: %w", err) } diff --git a/services/auth/basic.go b/services/auth/basic.go index 9b32ad29af8bd..fbf06e14a2c15 100644 --- a/services/auth/basic.go +++ b/services/auth/basic.go @@ -75,7 +75,7 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore if uid != 0 { log.Trace("Basic Authorization: Valid OAuthAccessToken for user[%d]", uid) - u, err := user_model.GetUserByID(uid) + u, err := user_model.GetUserByID(req.Context(), uid) if err != nil { log.Error("GetUserByID: %v", err) return nil @@ -88,7 +88,7 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore token, err := auth_model.GetAccessTokenBySHA(authToken) if err == nil { log.Trace("Basic Authorization: Valid AccessToken for user[%d]", uid) - u, err := user_model.GetUserByID(token.UID) + u, err := user_model.GetUserByID(req.Context(), token.UID) if err != nil { log.Error("GetUserByID: %v", err) return nil diff --git a/services/auth/httpsign.go b/services/auth/httpsign.go index 67053d2b77730..e228c35c721fe 100644 --- a/services/auth/httpsign.go +++ b/services/auth/httpsign.go @@ -73,7 +73,7 @@ func (h *HTTPSign) Verify(req *http.Request, w http.ResponseWriter, store DataSt } } - u, err := user_model.GetUserByID(publicKey.OwnerID) + u, err := user_model.GetUserByID(req.Context(), publicKey.OwnerID) if err != nil { log.Error("GetUserByID: %v", err) return nil diff --git a/services/auth/oauth2.go b/services/auth/oauth2.go index 8f038d6104181..3faf556a24988 100644 --- a/services/auth/oauth2.go +++ b/services/auth/oauth2.go @@ -124,7 +124,7 @@ func (o *OAuth2) Verify(req *http.Request, w http.ResponseWriter, store DataStor } log.Trace("OAuth2 Authorization: Found token for user[%d]", id) - user, err := user_model.GetUserByID(id) + user, err := user_model.GetUserByID(req.Context(), id) if err != nil { if !user_model.IsErrUserNotExist(err) { log.Error("GetUserByName: %v", err) diff --git a/services/auth/session.go b/services/auth/session.go index 1ec94aa0af718..42ee638f64009 100644 --- a/services/auth/session.go +++ b/services/auth/session.go @@ -7,6 +7,7 @@ package auth import ( "net/http" + "code.gitea.io/gitea/models/db" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/log" ) @@ -56,7 +57,7 @@ func SessionUser(sess SessionStore) *user_model.User { } // Get user object - user, err := user_model.GetUserByID(id) + user, err := user_model.GetUserByID(db.DefaultContext, id) if err != nil { if !user_model.IsErrUserNotExist(err) { log.Error("GetUserById: %v", err) diff --git a/services/automerge/automerge.go b/services/automerge/automerge.go index 3291ed31f0da1..7fe447cb0289e 100644 --- a/services/automerge/automerge.go +++ b/services/automerge/automerge.go @@ -219,7 +219,7 @@ func handlePull(pullID int64, sha string) { } // Merge if all checks succeeded - doer, err := user_model.GetUserByIDCtx(ctx, scheduledPRM.DoerID) + doer, err := user_model.GetUserByID(ctx, scheduledPRM.DoerID) if err != nil { log.Error("GetUserByIDCtx: %v", err) return diff --git a/services/issue/assignee.go b/services/issue/assignee.go index 291fc31637141..650c088e54322 100644 --- a/services/issue/assignee.go +++ b/services/issue/assignee.go @@ -51,7 +51,7 @@ func ToggleAssignee(issue *issues_model.Issue, doer *user_model.User, assigneeID return } - assignee, err1 := user_model.GetUserByIDCtx(db.DefaultContext, assigneeID) + assignee, err1 := user_model.GetUserByID(db.DefaultContext, assigneeID) if err1 != nil { err = err1 return diff --git a/services/issue/assignee_test.go b/services/issue/assignee_test.go index 5c8b822499cc9..10bff68a302ef 100644 --- a/services/issue/assignee_test.go +++ b/services/issue/assignee_test.go @@ -23,7 +23,7 @@ func TestDeleteNotPassedAssignee(t *testing.T) { assert.NoError(t, err) assert.EqualValues(t, 1, len(issue.Assignees)) - user1, err := user_model.GetUserByID(1) // This user is already assigned (see the definition in fixtures), so running UpdateAssignee should unassign him + user1, err := user_model.GetUserByID(db.DefaultContext, 1) // This user is already assigned (see the definition in fixtures), so running UpdateAssignee should unassign him assert.NoError(t, err) // Check if he got removed diff --git a/services/issue/commit.go b/services/issue/commit.go index c8cfa6cc8a6c7..672e5c94c7ccd 100644 --- a/services/issue/commit.go +++ b/services/issue/commit.go @@ -120,7 +120,7 @@ func UpdateIssuesCommit(doer *user_model.User, repo *repo_model.Repository, comm // issue is from another repo if len(ref.Owner) > 0 && len(ref.Name) > 0 { - refRepo, err = repo_model.GetRepositoryByOwnerAndName(ref.Owner, ref.Name) + refRepo, err = repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, ref.Owner, ref.Name) if err != nil { if repo_model.IsErrRepoNotExist(err) { log.Warn("Repository referenced in commit but does not exist: %v", err) diff --git a/services/issue/issue.go b/services/issue/issue.go index ba9b17a0c8ab1..de4210cb7fbdf 100644 --- a/services/issue/issue.go +++ b/services/issue/issue.go @@ -162,7 +162,7 @@ func DeleteIssue(doer *user_model.User, gitRepo *git.Repository, issue *issues_m // AddAssigneeIfNotAssigned adds an assignee only if he isn't already assigned to the issue. // Also checks for access of assigned user func AddAssigneeIfNotAssigned(issue *issues_model.Issue, doer *user_model.User, assigneeID int64) (err error) { - assignee, err := user_model.GetUserByIDCtx(db.DefaultContext, assigneeID) + assignee, err := user_model.GetUserByID(db.DefaultContext, assigneeID) if err != nil { return err } diff --git a/services/issue/issue_test.go b/services/issue/issue_test.go index 20f3a3296cc5e..0d86397da8f4d 100644 --- a/services/issue/issue_test.go +++ b/services/issue/issue_test.go @@ -67,7 +67,7 @@ func TestIssue_DeleteIssue(t *testing.T) { } // check issue dependencies - user, err := user_model.GetUserByID(1) + user, err := user_model.GetUserByID(db.DefaultContext, 1) assert.NoError(t, err) issue1, err := issues_model.GetIssueByID(db.DefaultContext, 1) assert.NoError(t, err) diff --git a/services/lfs/locks.go b/services/lfs/locks.go index 45ba8faacd238..416f9ff705ee8 100644 --- a/services/lfs/locks.go +++ b/services/lfs/locks.go @@ -40,7 +40,7 @@ func handleLockListOut(ctx *context.Context, repo *repo_model.Repository, lock * return } ctx.JSON(http.StatusOK, api.LFSLockList{ - Locks: []*api.LFSLock{convert.ToLFSLock(lock)}, + Locks: []*api.LFSLock{convert.ToLFSLock(ctx, lock)}, }) } @@ -48,7 +48,7 @@ func handleLockListOut(ctx *context.Context, repo *repo_model.Repository, lock * func GetListLockHandler(ctx *context.Context) { rv := getRequestContext(ctx) - repository, err := repo_model.GetRepositoryByOwnerAndName(rv.User, rv.Repo) + repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, rv.User, rv.Repo) if err != nil { log.Debug("Could not find repository: %s/%s - %s", rv.User, rv.Repo, err) ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=gitea-lfs") @@ -118,7 +118,7 @@ func GetListLockHandler(ctx *context.Context) { lockListAPI := make([]*api.LFSLock, len(lockList)) next := "" for i, l := range lockList { - lockListAPI[i] = convert.ToLFSLock(l) + lockListAPI[i] = convert.ToLFSLock(ctx, l) } if limit > 0 && len(lockList) == limit { next = strconv.Itoa(cursor + 1) @@ -135,7 +135,7 @@ func PostLockHandler(ctx *context.Context) { repoName := strings.TrimSuffix(ctx.Params("reponame"), ".git") authorization := ctx.Req.Header.Get("Authorization") - repository, err := repo_model.GetRepositoryByOwnerAndName(userName, repoName) + repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, userName, repoName) if err != nil { log.Error("Unable to get repository: %s/%s Error: %v", userName, repoName, err) ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=gitea-lfs") @@ -175,7 +175,7 @@ func PostLockHandler(ctx *context.Context) { if err != nil { if git_model.IsErrLFSLockAlreadyExist(err) { ctx.JSON(http.StatusConflict, api.LFSLockError{ - Lock: convert.ToLFSLock(lock), + Lock: convert.ToLFSLock(ctx, lock), Message: "already created lock", }) return @@ -193,7 +193,7 @@ func PostLockHandler(ctx *context.Context) { }) return } - ctx.JSON(http.StatusCreated, api.LFSLockResponse{Lock: convert.ToLFSLock(lock)}) + ctx.JSON(http.StatusCreated, api.LFSLockResponse{Lock: convert.ToLFSLock(ctx, lock)}) } // VerifyLockHandler list locks for verification @@ -202,7 +202,7 @@ func VerifyLockHandler(ctx *context.Context) { repoName := strings.TrimSuffix(ctx.Params("reponame"), ".git") authorization := ctx.Req.Header.Get("Authorization") - repository, err := repo_model.GetRepositoryByOwnerAndName(userName, repoName) + repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, userName, repoName) if err != nil { log.Error("Unable to get repository: %s/%s Error: %v", userName, repoName, err) ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=gitea-lfs") @@ -250,9 +250,9 @@ func VerifyLockHandler(ctx *context.Context) { lockTheirsListAPI := make([]*api.LFSLock, 0, len(lockList)) for _, l := range lockList { if l.OwnerID == ctx.Doer.ID { - lockOursListAPI = append(lockOursListAPI, convert.ToLFSLock(l)) + lockOursListAPI = append(lockOursListAPI, convert.ToLFSLock(ctx, l)) } else { - lockTheirsListAPI = append(lockTheirsListAPI, convert.ToLFSLock(l)) + lockTheirsListAPI = append(lockTheirsListAPI, convert.ToLFSLock(ctx, l)) } } ctx.JSON(http.StatusOK, api.LFSLockListVerify{ @@ -268,7 +268,7 @@ func UnLockHandler(ctx *context.Context) { repoName := strings.TrimSuffix(ctx.Params("reponame"), ".git") authorization := ctx.Req.Header.Get("Authorization") - repository, err := repo_model.GetRepositoryByOwnerAndName(userName, repoName) + repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, userName, repoName) if err != nil { log.Error("Unable to get repository: %s/%s Error: %v", userName, repoName, err) ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=gitea-lfs") @@ -316,5 +316,5 @@ func UnLockHandler(ctx *context.Context) { }) return } - ctx.JSON(http.StatusOK, api.LFSLockResponse{Lock: convert.ToLFSLock(lock)}) + ctx.JSON(http.StatusOK, api.LFSLockResponse{Lock: convert.ToLFSLock(ctx, lock)}) } diff --git a/services/lfs/server.go b/services/lfs/server.go index 830112fac6e35..de50238dd5f1f 100644 --- a/services/lfs/server.go +++ b/services/lfs/server.go @@ -18,6 +18,7 @@ import ( "strconv" "strings" + "code.gitea.io/gitea/models/db" git_model "code.gitea.io/gitea/models/git" "code.gitea.io/gitea/models/perm" access_model "code.gitea.io/gitea/models/perm/access" @@ -409,7 +410,7 @@ func getAuthenticatedMeta(ctx *context.Context, rc *requestContext, p lfs_module } func getAuthenticatedRepository(ctx *context.Context, rc *requestContext, requireWrite bool) *repo_model.Repository { - repository, err := repo_model.GetRepositoryByOwnerAndName(rc.User, rc.Repo) + repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, rc.User, rc.Repo) if err != nil { log.Error("Unable to get repository: %s/%s Error: %v", rc.User, rc.Repo, err) writeStatus(ctx, http.StatusNotFound) @@ -544,7 +545,7 @@ func handleLFSToken(tokenSHA string, target *repo_model.Repository, mode perm.Ac return nil, fmt.Errorf("invalid token claim") } - u, err := user_model.GetUserByID(claims.UserID) + u, err := user_model.GetUserByID(db.DefaultContext, claims.UserID) if err != nil { log.Error("Unable to GetUserById[%d]: Error: %v", claims.UserID, err) return nil, err diff --git a/services/mailer/mail_team_invite.go b/services/mailer/mail_team_invite.go index c2b2a00e76097..e7cf060433345 100644 --- a/services/mailer/mail_team_invite.go +++ b/services/mailer/mail_team_invite.go @@ -27,7 +27,7 @@ func MailTeamInvite(ctx context.Context, inviter *user_model.User, team *org_mod return nil } - org, err := user_model.GetUserByIDCtx(ctx, team.OrgID) + org, err := user_model.GetUserByID(ctx, team.OrgID) if err != nil { return err } diff --git a/services/migrations/gitea_uploader.go b/services/migrations/gitea_uploader.go index 8a7533b3d1756..e6b4675128352 100644 --- a/services/migrations/gitea_uploader.go +++ b/services/migrations/gitea_uploader.go @@ -110,7 +110,7 @@ func (g *GiteaLocalUploader) CreateRepo(repo *base.Repository, opts base.Migrate Status: repo_model.RepositoryBeingMigrated, }) } else { - r, err = repo_model.GetRepositoryByID(opts.MigrateToRepoID) + r, err = repo_model.GetRepositoryByID(g.ctx, opts.MigrateToRepoID) } if err != nil { return err diff --git a/services/pull/check.go b/services/pull/check.go index faf3459f16f3b..58c2f4877245e 100644 --- a/services/pull/check.go +++ b/services/pull/check.go @@ -127,7 +127,7 @@ func CheckPullMergable(stdCtx context.Context, doer *user_model.User, perm *acce // isSignedIfRequired check if merge will be signed if required func isSignedIfRequired(ctx context.Context, pr *issues_model.PullRequest, doer *user_model.User) (bool, error) { - if err := pr.LoadProtectedBranchCtx(ctx); err != nil { + if err := pr.LoadProtectedBranch(ctx); err != nil { return false, err } @@ -166,7 +166,7 @@ func checkAndUpdateStatus(ctx context.Context, pr *issues_model.PullRequest) { func getMergeCommit(ctx context.Context, pr *issues_model.PullRequest) (*git.Commit, error) { if pr.BaseRepo == nil { var err error - pr.BaseRepo, err = repo_model.GetRepositoryByID(pr.BaseRepoID) + pr.BaseRepo, err = repo_model.GetRepositoryByID(ctx, pr.BaseRepoID) if err != nil { return nil, fmt.Errorf("GetRepositoryByID: %w", err) } diff --git a/services/pull/commit_status.go b/services/pull/commit_status.go index 10692221a4100..7c7c236b42bb3 100644 --- a/services/pull/commit_status.go +++ b/services/pull/commit_status.go @@ -84,7 +84,7 @@ func IsCommitStatusContextSuccess(commitStatuses []*git_model.CommitStatus, requ // IsPullCommitStatusPass returns if all required status checks PASS func IsPullCommitStatusPass(ctx context.Context, pr *issues_model.PullRequest) (bool, error) { - if err := pr.LoadProtectedBranchCtx(ctx); err != nil { + if err := pr.LoadProtectedBranch(ctx); err != nil { return false, errors.Wrap(err, "GetLatestCommitStatus") } if pr.ProtectedBranch == nil || !pr.ProtectedBranch.EnableStatusCheck { @@ -138,7 +138,7 @@ func GetPullRequestCommitStatusState(ctx context.Context, pr *issues_model.PullR return "", errors.Wrap(err, "GetLatestCommitStatus") } - if err := pr.LoadProtectedBranchCtx(ctx); err != nil { + if err := pr.LoadProtectedBranch(ctx); err != nil { return "", errors.Wrap(err, "LoadProtectedBranch") } var requiredContexts []string diff --git a/services/pull/merge.go b/services/pull/merge.go index b29c9bc859932..bf0956241d8de 100644 --- a/services/pull/merge.go +++ b/services/pull/merge.go @@ -753,7 +753,7 @@ func IsUserAllowedToMerge(ctx context.Context, pr *issues_model.PullRequest, p a return false, nil } - err := pr.LoadProtectedBranchCtx(ctx) + err := pr.LoadProtectedBranch(ctx) if err != nil { return false, err } @@ -771,7 +771,7 @@ func CheckPullBranchProtections(ctx context.Context, pr *issues_model.PullReques return fmt.Errorf("LoadBaseRepo: %w", err) } - if err = pr.LoadProtectedBranchCtx(ctx); err != nil { + if err = pr.LoadProtectedBranch(ctx); err != nil { return fmt.Errorf("LoadProtectedBranch: %w", err) } if pr.ProtectedBranch == nil { diff --git a/services/pull/patch.go b/services/pull/patch.go index 1046095ff1103..12bfb5721a213 100644 --- a/services/pull/patch.go +++ b/services/pull/patch.go @@ -15,6 +15,7 @@ import ( "strings" "code.gitea.io/gitea/models" + "code.gitea.io/gitea/models/db" issues_model "code.gitea.io/gitea/models/issues" "code.gitea.io/gitea/models/unit" "code.gitea.io/gitea/modules/container" @@ -534,7 +535,7 @@ func checkPullFilesProtection(pr *issues_model.PullRequest, gitRepo *git.Reposit return nil } - if err := pr.LoadProtectedBranch(); err != nil { + if err := pr.LoadProtectedBranch(db.DefaultContext); err != nil { return err } diff --git a/services/pull/pull.go b/services/pull/pull.go index e0dcefe1410b8..f810650f4b2ea 100644 --- a/services/pull/pull.go +++ b/services/pull/pull.go @@ -231,7 +231,7 @@ func ChangeTargetBranch(ctx context.Context, pr *issues_model.PullRequest, doer } func checkForInvalidation(ctx context.Context, requests issues_model.PullRequestList, repoID int64, doer *user_model.User, branch string) error { - repo, err := repo_model.GetRepositoryByIDCtx(ctx, repoID) + repo, err := repo_model.GetRepositoryByID(ctx, repoID) if err != nil { return fmt.Errorf("GetRepositoryByIDCtx: %w", err) } @@ -595,7 +595,7 @@ func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequ if pr.HeadRepo == nil { var err error - pr.HeadRepo, err = repo_model.GetRepositoryByIDCtx(ctx, pr.HeadRepoID) + pr.HeadRepo, err = repo_model.GetRepositoryByID(ctx, pr.HeadRepoID) if err != nil { log.Error("GetRepositoryByIdCtx[%d]: %v", pr.HeadRepoID, err) return "" diff --git a/services/pull/update.go b/services/pull/update.go index 36e66bb7a9d50..7956481b0edba 100644 --- a/services/pull/update.go +++ b/services/pull/update.go @@ -100,7 +100,7 @@ func IsUserAllowedToUpdate(ctx context.Context, pull *issues_model.PullRequest, BaseBranch: pull.HeadBranch, } - err = pr.LoadProtectedBranch() + err = pr.LoadProtectedBranch(ctx) if err != nil { return false, false, err } diff --git a/services/release/release.go b/services/release/release.go index eb989381f0f57..1196945454f42 100644 --- a/services/release/release.go +++ b/services/release/release.go @@ -290,7 +290,7 @@ func DeleteReleaseByID(ctx context.Context, id int64, doer *user_model.User, del return fmt.Errorf("GetReleaseByID: %w", err) } - repo, err := repo_model.GetRepositoryByIDCtx(ctx, rel.RepoID) + repo, err := repo_model.GetRepositoryByID(ctx, rel.RepoID) if err != nil { return fmt.Errorf("GetRepositoryByID: %w", err) } diff --git a/services/repository/adopt.go b/services/repository/adopt.go index 3895c54c7b957..b3f21a4f63220 100644 --- a/services/repository/adopt.go +++ b/services/repository/adopt.go @@ -117,7 +117,7 @@ func adoptRepository(ctx context.Context, repoPath string, u *user_model.User, r // Re-fetch the repository from database before updating it (else it would // override changes that were done earlier with sql) - if repo, err = repo_model.GetRepositoryByIDCtx(ctx, repo.ID); err != nil { + if repo, err = repo_model.GetRepositoryByID(ctx, repo.ID); err != nil { return fmt.Errorf("getRepositoryByID: %w", err) } diff --git a/services/repository/archiver/archiver.go b/services/repository/archiver/archiver.go index f1c2693aeb104..5b95d69bc4ef0 100644 --- a/services/repository/archiver/archiver.go +++ b/services/repository/archiver/archiver.go @@ -227,7 +227,7 @@ func doArchive(r *ArchiveRequest) (*repo_model.RepoArchiver, error) { rd.Close() }() done := make(chan error, 1) // Ensure that there is some capacity which will ensure that the goroutine below can always finish - repo, err := repo_model.GetRepositoryByID(archiver.RepoID) + repo, err := repo_model.GetRepositoryByID(ctx, archiver.RepoID) if err != nil { return nil, fmt.Errorf("archiver.LoadRepo failed: %w", err) } diff --git a/services/repository/files/upload.go b/services/repository/files/upload.go index 372878099103e..b89deba29d173 100644 --- a/services/repository/files/upload.go +++ b/services/repository/files/upload.go @@ -70,7 +70,7 @@ func UploadRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *use return err } if lfsLock != nil && lfsLock.OwnerID != doer.ID { - u, err := user_model.GetUserByID(lfsLock.OwnerID) + u, err := user_model.GetUserByID(ctx, lfsLock.OwnerID) if err != nil { return err } diff --git a/services/repository/fork.go b/services/repository/fork.go index a9a2b33ed8472..1cc98bb103a07 100644 --- a/services/repository/fork.go +++ b/services/repository/fork.go @@ -185,7 +185,7 @@ func ForkRepository(ctx context.Context, doer, owner *user_model.User, opts Fork // ConvertForkToNormalRepository convert the provided repo from a forked repo to normal repo func ConvertForkToNormalRepository(repo *repo_model.Repository) error { err := db.WithTx(db.DefaultContext, func(ctx context.Context) error { - repo, err := repo_model.GetRepositoryByIDCtx(ctx, repo.ID) + repo, err := repo_model.GetRepositoryByID(ctx, repo.ID) if err != nil { return err } diff --git a/services/repository/push.go b/services/repository/push.go index e2db18e1f7599..0fbb8d43c7b9d 100644 --- a/services/repository/push.go +++ b/services/repository/push.go @@ -82,7 +82,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error { ctx, _, finished := process.GetManager().AddContext(graceful.GetManager().HammerContext(), fmt.Sprintf("PushUpdates: %s/%s", optsList[0].RepoUserName, optsList[0].RepoName)) defer finished() - repo, err := repo_model.GetRepositoryByOwnerAndName(optsList[0].RepoUserName, optsList[0].RepoName) + repo, err := repo_model.GetRepositoryByOwnerAndName(ctx, optsList[0].RepoUserName, optsList[0].RepoName) if err != nil { return fmt.Errorf("GetRepositoryByOwnerAndName failed: %w", err) } @@ -110,7 +110,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error { if opts.IsTag() { // If is tag reference if pusher == nil || pusher.ID != opts.PusherID { var err error - if pusher, err = user_model.GetUserByID(opts.PusherID); err != nil { + if pusher, err = user_model.GetUserByID(ctx, opts.PusherID); err != nil { return err } } @@ -150,7 +150,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error { } else if opts.IsBranch() { // If is branch reference if pusher == nil || pusher.ID != opts.PusherID { var err error - if pusher, err = user_model.GetUserByID(opts.PusherID); err != nil { + if pusher, err = user_model.GetUserByID(ctx, opts.PusherID); err != nil { return err } } diff --git a/services/repository/repository.go b/services/repository/repository.go index c369b98aae091..680fcd23b7ab8 100644 --- a/services/repository/repository.go +++ b/services/repository/repository.go @@ -104,24 +104,24 @@ func UpdateRepository(repo *repo_model.Repository, visibilityChanged bool) (err } // LinkedRepository returns the linked repo if any -func LinkedRepository(a *repo_model.Attachment) (*repo_model.Repository, unit.Type, error) { +func LinkedRepository(ctx context.Context, a *repo_model.Attachment) (*repo_model.Repository, unit.Type, error) { if a.IssueID != 0 { - iss, err := issues_model.GetIssueByID(db.DefaultContext, a.IssueID) + iss, err := issues_model.GetIssueByID(ctx, a.IssueID) if err != nil { return nil, unit.TypeIssues, err } - repo, err := repo_model.GetRepositoryByID(iss.RepoID) + repo, err := repo_model.GetRepositoryByID(ctx, iss.RepoID) unitType := unit.TypeIssues if iss.IsPull { unitType = unit.TypePullRequests } return repo, unitType, err } else if a.ReleaseID != 0 { - rel, err := repo_model.GetReleaseByID(db.DefaultContext, a.ReleaseID) + rel, err := repo_model.GetReleaseByID(ctx, a.ReleaseID) if err != nil { return nil, unit.TypeReleases, err } - repo, err := repo_model.GetRepositoryByID(rel.RepoID) + repo, err := repo_model.GetRepositoryByID(ctx, rel.RepoID) return repo, unit.TypeReleases, err } return nil, -1, nil diff --git a/services/repository/repository_test.go b/services/repository/repository_test.go index e0ffcac3cc74d..b8c7d12560c9e 100644 --- a/services/repository/repository_test.go +++ b/services/repository/repository_test.go @@ -32,7 +32,7 @@ func TestLinkedRepository(t *testing.T) { t.Run(tc.name, func(t *testing.T) { attach, err := repo_model.GetAttachmentByID(db.DefaultContext, tc.attachID) assert.NoError(t, err) - repo, unitType, err := LinkedRepository(attach) + repo, unitType, err := LinkedRepository(db.DefaultContext, attach) assert.NoError(t, err) if tc.expectedRepo != nil { assert.Equal(t, tc.expectedRepo.ID, repo.ID) diff --git a/services/repository/transfer.go b/services/repository/transfer.go index 2778f2e744234..2817cd3495850 100644 --- a/services/repository/transfer.go +++ b/services/repository/transfer.go @@ -44,7 +44,7 @@ func TransferOwnership(doer, newOwner *user_model.User, repo *repo_model.Reposit } repoWorkingPool.CheckOut(fmt.Sprint(repo.ID)) - newRepo, err := repo_model.GetRepositoryByID(repo.ID) + newRepo, err := repo_model.GetRepositoryByID(db.DefaultContext, repo.ID) if err != nil { return err } diff --git a/tests/integration/api_issue_tracked_time_test.go b/tests/integration/api_issue_tracked_time_test.go index 6e2c77030cb7d..cfb012ca00e51 100644 --- a/tests/integration/api_issue_tracked_time_test.go +++ b/tests/integration/api_issue_tracked_time_test.go @@ -44,7 +44,7 @@ func TestAPIGetTrackedTimes(t *testing.T) { assert.EqualValues(t, issue2.ID, apiTimes[i].IssueID) assert.Equal(t, time.Created.Unix(), apiTimes[i].Created.Unix()) assert.Equal(t, time.Time, apiTimes[i].Time) - user, err := user_model.GetUserByID(time.UserID) + user, err := user_model.GetUserByID(db.DefaultContext, time.UserID) assert.NoError(t, err) assert.Equal(t, user.Name, apiTimes[i].UserName) } diff --git a/tests/integration/api_repo_lfs_test.go b/tests/integration/api_repo_lfs_test.go index 440dd04a8106d..f9adbdb8b5ab4 100644 --- a/tests/integration/api_repo_lfs_test.go +++ b/tests/integration/api_repo_lfs_test.go @@ -12,6 +12,7 @@ import ( "strings" "testing" + "code.gitea.io/gitea/models/db" git_model "code.gitea.io/gitea/models/git" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/models/unittest" @@ -62,7 +63,7 @@ func createLFSTestRepository(t *testing.T, name string) *repo_model.Repository { ctx := NewAPITestContext(t, "user2", "lfs-"+name+"-repo") t.Run("CreateRepo", doAPICreateRepository(ctx, false)) - repo, err := repo_model.GetRepositoryByOwnerAndName("user2", "lfs-"+name+"-repo") + repo, err := repo_model.GetRepositoryByOwnerAndName(db.DefaultContext,"user2", "lfs-"+name+"-repo") assert.NoError(t, err) return repo diff --git a/tests/integration/git_test.go b/tests/integration/git_test.go index 6f656ef2ce6dd..cf0b302edd1af 100644 --- a/tests/integration/git_test.go +++ b/tests/integration/git_test.go @@ -571,7 +571,7 @@ func doPushCreate(ctx APITestContext, u *url.URL) func(t *testing.T) { t.Run("SuccessfullyPushAndCreateTestRepository", doGitPushTestRepository(tmpDir, "origin", "master")) // Finally, fetch repo from database and ensure the correct repository has been created - repo, err := repo_model.GetRepositoryByOwnerAndName(ctx.Username, ctx.Reponame) + repo, err := repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, ctx.Username, ctx.Reponame) assert.NoError(t, err) assert.False(t, repo.IsEmpty) assert.True(t, repo.IsPrivate) @@ -699,7 +699,7 @@ func doCreateAgitFlowPull(dstPath string, ctx *APITestContext, baseBranch, headB pr1, pr2 *issues_model.PullRequest commit string ) - repo, err := repo_model.GetRepositoryByOwnerAndName(ctx.Username, ctx.Reponame) + repo, err := repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, ctx.Username, ctx.Reponame) if !assert.NoError(t, err) { return } diff --git a/tests/integration/lfs_getobject_test.go b/tests/integration/lfs_getobject_test.go index f2b0ac80c3ed2..2d16ecdaf63b9 100644 --- a/tests/integration/lfs_getobject_test.go +++ b/tests/integration/lfs_getobject_test.go @@ -12,6 +12,7 @@ import ( "net/http/httptest" "testing" + "code.gitea.io/gitea/models/db" git_model "code.gitea.io/gitea/models/git" repo_model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/modules/json" @@ -41,7 +42,7 @@ func storeObjectInRepo(t *testing.T, repositoryID int64, content *[]byte) string } func storeAndGetLfs(t *testing.T, content *[]byte, extraHeader *http.Header, expectedStatus int) *httptest.ResponseRecorder { - repo, err := repo_model.GetRepositoryByOwnerAndName("user2", "repo1") + repo, err := repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, "user2", "repo1") assert.NoError(t, err) oid := storeObjectInRepo(t, repo.ID, content) defer git_model.RemoveLFSMetaObjectByOid(repo.ID, oid) diff --git a/tests/integration/repo_search_test.go b/tests/integration/repo_search_test.go index b20943c22ac6a..4e4fb7bc18bc0 100644 --- a/tests/integration/repo_search_test.go +++ b/tests/integration/repo_search_test.go @@ -8,6 +8,7 @@ import ( "net/http" "testing" + "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" code_indexer "code.gitea.io/gitea/modules/indexer/code" "code.gitea.io/gitea/modules/setting" @@ -29,7 +30,7 @@ func resultFilenames(t testing.TB, doc *HTMLDoc) []string { func TestSearchRepo(t *testing.T) { defer tests.PrepareTestEnv(t)() - repo, err := repo_model.GetRepositoryByOwnerAndName("user2", "repo1") + repo, err := repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, "user2", "repo1") assert.NoError(t, err) executeIndexer(t, repo, code_indexer.UpdateRepoIndexer) @@ -39,7 +40,7 @@ func TestSearchRepo(t *testing.T) { setting.Indexer.IncludePatterns = setting.IndexerGlobFromString("**.txt") setting.Indexer.ExcludePatterns = setting.IndexerGlobFromString("**/y/**") - repo, err = repo_model.GetRepositoryByOwnerAndName("user2", "glob") + repo, err = repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, "user2", "glob") assert.NoError(t, err) executeIndexer(t, repo, code_indexer.UpdateRepoIndexer) From 78fb30dde7495688b19e77576fa0856e6c926726 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 25 Nov 2022 14:32:26 +0800 Subject: [PATCH 2/5] Apply suggestions from code review Co-authored-by: KN4CK3R --- models/activities/action.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/activities/action.go b/models/activities/action.go index 5a74ef8963fa6..9ba7c1aa7f301 100644 --- a/models/activities/action.go +++ b/models/activities/action.go @@ -120,7 +120,7 @@ func (a *Action) LoadActUser(ctx context.Context) { return } var err error - a.ActUser, err = user_model.GetUserByID(db.DefaultContext, a.ActUserID) + a.ActUser, err = user_model.GetUserByID(ctx, a.ActUserID) if err == nil { return } else if user_model.IsErrUserNotExist(err) { From a7606f92f525a377421e565bb527f89b1da03c75 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 25 Nov 2022 14:55:25 +0800 Subject: [PATCH 3/5] Fix test --- modules/convert/pull_test.go | 2 +- tests/integration/api_repo_lfs_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/convert/pull_test.go b/modules/convert/pull_test.go index a0a672d3a5178..130cb5584fccf 100644 --- a/modules/convert/pull_test.go +++ b/modules/convert/pull_test.go @@ -32,7 +32,7 @@ func TestPullRequest_APIFormat(t *testing.T) { Ref: "refs/pull/2/head", Sha: "4a357436d925b5c974181ff12a994538ddc5a269", RepoID: 1, - Repository: ToRepo(headRepo, perm.AccessModeRead), + Repository: ToRepo(db.DefaultContext, headRepo, perm.AccessModeRead), }, apiPullRequest.Head) // withOut HeadRepo diff --git a/tests/integration/api_repo_lfs_test.go b/tests/integration/api_repo_lfs_test.go index f9adbdb8b5ab4..812239827a624 100644 --- a/tests/integration/api_repo_lfs_test.go +++ b/tests/integration/api_repo_lfs_test.go @@ -63,7 +63,7 @@ func createLFSTestRepository(t *testing.T, name string) *repo_model.Repository { ctx := NewAPITestContext(t, "user2", "lfs-"+name+"-repo") t.Run("CreateRepo", doAPICreateRepository(ctx, false)) - repo, err := repo_model.GetRepositoryByOwnerAndName(db.DefaultContext,"user2", "lfs-"+name+"-repo") + repo, err := repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, "user2", "lfs-"+name+"-repo") assert.NoError(t, err) return repo From 969b7c0097eb00ba64d550c6b6c0a30a1147cc38 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 26 Nov 2022 21:27:17 +0800 Subject: [PATCH 4/5] Fix typo --- models/repo/repo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/repo/repo.go b/models/repo/repo.go index 7151970371e2b..ff3d43a2294f6 100644 --- a/models/repo/repo.go +++ b/models/repo/repo.go @@ -316,7 +316,7 @@ func (repo *Repository) LoadUnits(ctx context.Context) (err error) { } // UnitEnabled if this repository has the given unit enabled -func (repo *Repository) UnitEnabled(tp unit.Type) (result bool) { // Notice: Don't remove this function directly, beacuse it has been used in go template. +func (repo *Repository) UnitEnabled(tp unit.Type) (result bool) { // Notice: Don't remove this function directly, because it has been used in go template. return repo.UnitEnabledCtx(db.DefaultContext, tp) } From 8095ff932cca75e8cf899551169cbe1f31bf270c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 30 Nov 2022 12:51:01 +0800 Subject: [PATCH 5/5] Apply suggestions --- models/org_team.go | 6 ++++-- models/repo/repo.go | 4 ---- modules/convert/convert.go | 4 ++-- services/lfs/server.go | 12 ++++++------ 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/models/org_team.go b/models/org_team.go index 96043e1e6fcad..fed033c6fdfae 100644 --- a/models/org_team.go +++ b/models/org_team.go @@ -351,7 +351,7 @@ func UpdateTeam(t *organization.Team, authChanged, includeAllChanged bool) (err // Update access for team members if needed. if authChanged { if err = t.LoadRepositories(ctx); err != nil { - return fmt.Errorf("getRepositories: %w", err) + return fmt.Errorf("LoadRepositories: %w", err) } for _, repo := range t.Repos { @@ -520,8 +520,10 @@ func AddTeamMember(team *organization.Team, userID int64) error { if err := committer.Commit(); err != nil { return err } + committer.Close() - // watch could be failed, so run it in a goroutine + // this behaviour may spend much time so run it in a goroutine + // FIXME: Update watch repos batchly if setting.Service.AutoWatchNewRepos { // Get team and its repositories. if err := team.LoadRepositories(db.DefaultContext); err != nil { diff --git a/models/repo/repo.go b/models/repo/repo.go index ff3d43a2294f6..5f03a6fd4e4e2 100644 --- a/models/repo/repo.go +++ b/models/repo/repo.go @@ -469,10 +469,6 @@ func (repo *Repository) ComposeDocumentMetas() map[string]string { // returns an error on failure (NOTE: no error is returned for // non-fork repositories, and BaseRepo will be left untouched) func (repo *Repository) GetBaseRepo(ctx context.Context) (err error) { - return repo.getBaseRepo(ctx) -} - -func (repo *Repository) getBaseRepo(ctx context.Context) (err error) { if !repo.IsFork { return nil } diff --git a/modules/convert/convert.go b/modules/convert/convert.go index 394a1879fc6d0..1a7d154d77398 100644 --- a/modules/convert/convert.go +++ b/modules/convert/convert.go @@ -6,7 +6,7 @@ package convert import ( - stdCtx "context" + "context" "fmt" "strconv" "strings" @@ -410,7 +410,7 @@ func ToOAuth2Application(app *auth.OAuth2Application) *api.OAuth2Application { } // ToLFSLock convert a LFSLock to api.LFSLock -func ToLFSLock(ctx stdCtx.Context, l *git_model.LFSLock) *api.LFSLock { +func ToLFSLock(ctx context.Context, l *git_model.LFSLock) *api.LFSLock { u, err := user_model.GetUserByID(ctx, l.OwnerID) if err != nil { return nil diff --git a/services/lfs/server.go b/services/lfs/server.go index de50238dd5f1f..32534f0a0237e 100644 --- a/services/lfs/server.go +++ b/services/lfs/server.go @@ -5,6 +5,7 @@ package lfs import ( + stdCtx "context" "crypto/sha256" "encoding/base64" "encoding/hex" @@ -18,7 +19,6 @@ import ( "strconv" "strings" - "code.gitea.io/gitea/models/db" git_model "code.gitea.io/gitea/models/git" "code.gitea.io/gitea/models/perm" access_model "code.gitea.io/gitea/models/perm/access" @@ -508,7 +508,7 @@ func authenticate(ctx *context.Context, repository *repo_model.Repository, autho return true } - user, err := parseToken(authorization, repository, accessMode) + user, err := parseToken(ctx, authorization, repository, accessMode) if err != nil { // Most of these are Warn level - the true internal server errors are logged in parseToken already log.Warn("Authentication failure for provided token with Error: %v", err) @@ -518,7 +518,7 @@ func authenticate(ctx *context.Context, repository *repo_model.Repository, autho return true } -func handleLFSToken(tokenSHA string, target *repo_model.Repository, mode perm.AccessMode) (*user_model.User, error) { +func handleLFSToken(ctx stdCtx.Context, tokenSHA string, target *repo_model.Repository, mode perm.AccessMode) (*user_model.User, error) { if !strings.Contains(tokenSHA, ".") { return nil, nil } @@ -545,7 +545,7 @@ func handleLFSToken(tokenSHA string, target *repo_model.Repository, mode perm.Ac return nil, fmt.Errorf("invalid token claim") } - u, err := user_model.GetUserByID(db.DefaultContext, claims.UserID) + u, err := user_model.GetUserByID(ctx, claims.UserID) if err != nil { log.Error("Unable to GetUserById[%d]: Error: %v", claims.UserID, err) return nil, err @@ -553,7 +553,7 @@ func handleLFSToken(tokenSHA string, target *repo_model.Repository, mode perm.Ac return u, nil } -func parseToken(authorization string, target *repo_model.Repository, mode perm.AccessMode) (*user_model.User, error) { +func parseToken(ctx stdCtx.Context, authorization string, target *repo_model.Repository, mode perm.AccessMode) (*user_model.User, error) { if authorization == "" { return nil, fmt.Errorf("no token") } @@ -567,7 +567,7 @@ func parseToken(authorization string, target *repo_model.Repository, mode perm.A case "bearer": fallthrough case "token": - return handleLFSToken(tokenSHA, target, mode) + return handleLFSToken(ctx, tokenSHA, target, mode) } return nil, fmt.Errorf("token not found") }