diff options
author | Jimmy Praet <jimmy.praet@telenet.be> | 2021-01-02 18:04:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-02 18:04:02 +0100 |
commit | e6acce649b348cc497b999100a170866a90c87b8 (patch) | |
tree | 2a1bb838fe8b36f016c638190651e61e6b27acd3 /services/pull | |
parent | ac88b0ee839bfbfae5759e211d0f9a69abe4d8f7 (diff) | |
download | gitea-e6acce649b348cc497b999100a170866a90c87b8.tar.gz gitea-e6acce649b348cc497b999100a170866a90c87b8.zip |
Send notifications for mentions in pulls, issues, (code-)comments (#14218)
Fixes #14187: mention handling extracted from email notification code
Fixes #14013: add notification for mentions in pull request code comments
Fixes #13450: Not receiving any emails with setting "Only Email on Mention"
Diffstat (limited to 'services/pull')
-rw-r--r-- | services/pull/pull.go | 7 | ||||
-rw-r--r-- | services/pull/review.go | 27 |
2 files changed, 31 insertions, 3 deletions
diff --git a/services/pull/pull.go b/services/pull/pull.go index 476c5dad54..35dcbf9604 100644 --- a/services/pull/pull.go +++ b/services/pull/pull.go @@ -53,7 +53,12 @@ func NewPullRequest(repo *models.Repository, pull *models.Issue, labelIDs []int6 return err } - notification.NotifyNewPullRequest(pr) + mentions, err := pull.FindAndUpdateIssueMentions(models.DefaultDBContext(), pull.Poster, pull.Content) + if err != nil { + return err + } + + notification.NotifyNewPullRequest(pr, mentions) // add first push codes comment baseGitRepo, err := git.OpenRepository(pr.BaseRepo.RepoPath()) diff --git a/services/pull/review.go b/services/pull/review.go index 6781136061..8994a9e78a 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -57,7 +57,12 @@ func CreateCodeComment(doer *models.User, gitRepo *git.Repository, issue *models return nil, err } - notification.NotifyCreateIssueComment(doer, issue.Repo, issue, comment) + mentions, err := issue.FindAndUpdateIssueMentions(models.DefaultDBContext(), doer, comment.Content) + if err != nil { + return nil, err + } + + notification.NotifyCreateIssueComment(doer, issue.Repo, issue, comment, mentions) return comment, nil } @@ -226,7 +231,25 @@ func SubmitReview(doer *models.User, gitRepo *git.Repository, issue *models.Issu return nil, nil, err } - notification.NotifyPullRequestReview(pr, review, comm) + ctx := models.DefaultDBContext() + mentions, err := issue.FindAndUpdateIssueMentions(ctx, doer, comm.Content) + if err != nil { + return nil, nil, err + } + + notification.NotifyPullRequestReview(pr, review, comm, mentions) + + for _, lines := range review.CodeComments { + for _, comments := range lines { + for _, codeComment := range comments { + mentions, err := issue.FindAndUpdateIssueMentions(ctx, doer, codeComment.Content) + if err != nil { + return nil, nil, err + } + notification.NotifyPullRequestCodeComment(pr, codeComment, mentions) + } + } + } return review, comm, nil } |