aboutsummaryrefslogtreecommitdiffstats
path: root/services/issue/assignee.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-04-15 02:18:28 +0800
committerGitHub <noreply@github.com>2023-04-14 14:18:28 -0400
commitcfe3d6e9b507a9331328e55ff98a1f582abae185 (patch)
tree94b035bd2859291a16edda27822b570bdd611a35 /services/issue/assignee.go
parentb667634b32e240f3f3260ab7e304f72f4ff75659 (diff)
downloadgitea-cfe3d6e9b507a9331328e55ff98a1f582abae185.tar.gz
gitea-cfe3d6e9b507a9331328e55ff98a1f582abae185.zip
Make more functions use ctx instead of db.DefaultContext (#24068)
Continue the "ctx refactoring" work. There are still a lot db.DefaultContext, incorrect context could cause database deadlock errors.
Diffstat (limited to 'services/issue/assignee.go')
-rw-r--r--services/issue/assignee.go25
1 files changed, 12 insertions, 13 deletions
diff --git a/services/issue/assignee.go b/services/issue/assignee.go
index e5e1456c3f..4d0224d4bf 100644
--- a/services/issue/assignee.go
+++ b/services/issue/assignee.go
@@ -6,7 +6,6 @@ package issue
import (
"context"
- "code.gitea.io/gitea/models/db"
issues_model "code.gitea.io/gitea/models/issues"
"code.gitea.io/gitea/models/organization"
"code.gitea.io/gitea/models/perm"
@@ -18,7 +17,7 @@ import (
)
// DeleteNotPassedAssignee deletes all assignees who aren't passed via the "assignees" array
-func DeleteNotPassedAssignee(issue *issues_model.Issue, doer *user_model.User, assignees []*user_model.User) (err error) {
+func DeleteNotPassedAssignee(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, assignees []*user_model.User) (err error) {
var found bool
oriAssignes := make([]*user_model.User, len(issue.Assignees))
_ = copy(oriAssignes, issue.Assignees)
@@ -34,7 +33,7 @@ func DeleteNotPassedAssignee(issue *issues_model.Issue, doer *user_model.User, a
if !found {
// This function also does comments and hooks, which is why we call it separately instead of directly removing the assignees here
- if _, _, err := ToggleAssignee(issue, doer, assignee.ID); err != nil {
+ if _, _, err := ToggleAssignee(ctx, issue, doer, assignee.ID); err != nil {
return err
}
}
@@ -44,25 +43,25 @@ func DeleteNotPassedAssignee(issue *issues_model.Issue, doer *user_model.User, a
}
// ToggleAssignee changes a user between assigned and not assigned for this issue, and make issue comment for it.
-func ToggleAssignee(issue *issues_model.Issue, doer *user_model.User, assigneeID int64) (removed bool, comment *issues_model.Comment, err error) {
- removed, comment, err = issues_model.ToggleIssueAssignee(issue, doer, assigneeID)
+func ToggleAssignee(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, assigneeID int64) (removed bool, comment *issues_model.Comment, err error) {
+ removed, comment, err = issues_model.ToggleIssueAssignee(ctx, issue, doer, assigneeID)
if err != nil {
return
}
- assignee, err1 := user_model.GetUserByID(db.DefaultContext, assigneeID)
+ assignee, err1 := user_model.GetUserByID(ctx, assigneeID)
if err1 != nil {
err = err1
return
}
- notification.NotifyIssueChangeAssignee(db.DefaultContext, doer, issue, assignee, removed, comment)
+ notification.NotifyIssueChangeAssignee(ctx, doer, issue, assignee, removed, comment)
return removed, comment, err
}
// ReviewRequest add or remove a review request from a user for this PR, and make comment for it.
-func ReviewRequest(issue *issues_model.Issue, doer, reviewer *user_model.User, isAdd bool) (comment *issues_model.Comment, err error) {
+func ReviewRequest(ctx context.Context, issue *issues_model.Issue, doer, reviewer *user_model.User, isAdd bool) (comment *issues_model.Comment, err error) {
if isAdd {
comment, err = issues_model.AddReviewRequest(issue, reviewer, doer)
} else {
@@ -74,7 +73,7 @@ func ReviewRequest(issue *issues_model.Issue, doer, reviewer *user_model.User, i
}
if comment != nil {
- notification.NotifyPullReviewRequest(db.DefaultContext, doer, issue, reviewer, isAdd, comment)
+ notification.NotifyPullReviewRequest(ctx, doer, issue, reviewer, isAdd, comment)
}
return comment, err
@@ -229,7 +228,7 @@ func IsValidTeamReviewRequest(ctx context.Context, reviewer *organization.Team,
}
// TeamReviewRequest add or remove a review request from a team for this PR, and make comment for it.
-func TeamReviewRequest(issue *issues_model.Issue, doer *user_model.User, reviewer *organization.Team, isAdd bool) (comment *issues_model.Comment, err error) {
+func TeamReviewRequest(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, reviewer *organization.Team, isAdd bool) (comment *issues_model.Comment, err error) {
if isAdd {
comment, err = issues_model.AddTeamReviewRequest(issue, reviewer, doer)
} else {
@@ -245,11 +244,11 @@ func TeamReviewRequest(issue *issues_model.Issue, doer *user_model.User, reviewe
}
// notify all user in this team
- if err = comment.LoadIssue(db.DefaultContext); err != nil {
+ if err = comment.LoadIssue(ctx); err != nil {
return
}
- members, err := organization.GetTeamMembers(db.DefaultContext, &organization.SearchMembersOptions{
+ members, err := organization.GetTeamMembers(ctx, &organization.SearchMembersOptions{
TeamID: reviewer.ID,
})
if err != nil {
@@ -261,7 +260,7 @@ func TeamReviewRequest(issue *issues_model.Issue, doer *user_model.User, reviewe
continue
}
comment.AssigneeID = member.ID
- notification.NotifyPullReviewRequest(db.DefaultContext, doer, issue, member, isAdd, comment)
+ notification.NotifyPullReviewRequest(ctx, doer, issue, member, isAdd, comment)
}
return comment, err