diff options
Diffstat (limited to 'modules/notification')
-rw-r--r-- | modules/notification/action/action.go | 20 | ||||
-rw-r--r-- | modules/notification/base/notifier.go | 1 | ||||
-rw-r--r-- | modules/notification/base/null.go | 4 | ||||
-rw-r--r-- | modules/notification/mail/mail.go | 6 | ||||
-rw-r--r-- | modules/notification/notification.go | 7 | ||||
-rw-r--r-- | modules/notification/ui/ui.go | 9 |
6 files changed, 47 insertions, 0 deletions
diff --git a/modules/notification/action/action.go b/modules/notification/action/action.go index 360906f076..836cb51b3e 100644 --- a/modules/notification/action/action.go +++ b/modules/notification/action/action.go @@ -275,6 +275,26 @@ func (*actionNotifier) NotifyMergePullRequest(pr *models.PullRequest, doer *mode } } +func (*actionNotifier) NotifyPullRevieweDismiss(doer *models.User, review *models.Review, comment *models.Comment) { + reviewerName := review.Reviewer.Name + if len(review.OriginalAuthor) > 0 { + reviewerName = review.OriginalAuthor + } + if err := models.NotifyWatchers(&models.Action{ + ActUserID: doer.ID, + ActUser: doer, + OpType: models.ActionPullReviewDismissed, + Content: fmt.Sprintf("%d|%s|%s", review.Issue.Index, reviewerName, comment.Content), + RepoID: review.Issue.Repo.ID, + Repo: review.Issue.Repo, + IsPrivate: review.Issue.Repo.IsPrivate, + CommentID: comment.ID, + Comment: comment, + }); err != nil { + log.Error("NotifyWatchers [%d]: %v", review.Issue.ID, err) + } +} + func (a *actionNotifier) NotifyPushCommits(pusher *models.User, repo *models.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits) { data, err := json.Marshal(commits) if err != nil { diff --git a/modules/notification/base/notifier.go b/modules/notification/base/notifier.go index b01026dfc5..5bb833d275 100644 --- a/modules/notification/base/notifier.go +++ b/modules/notification/base/notifier.go @@ -39,6 +39,7 @@ type Notifier interface { NotifyPullRequestCodeComment(pr *models.PullRequest, comment *models.Comment, mentions []*models.User) NotifyPullRequestChangeTargetBranch(doer *models.User, pr *models.PullRequest, oldBranch string) NotifyPullRequestPushCommits(doer *models.User, pr *models.PullRequest, comment *models.Comment) + NotifyPullRevieweDismiss(doer *models.User, review *models.Review, comment *models.Comment) NotifyCreateIssueComment(doer *models.User, repo *models.Repository, issue *models.Issue, comment *models.Comment, mentions []*models.User) diff --git a/modules/notification/base/null.go b/modules/notification/base/null.go index d80ba859f3..2386f925ce 100644 --- a/modules/notification/base/null.go +++ b/modules/notification/base/null.go @@ -62,6 +62,10 @@ func (*NullNotifier) NotifyPullRequestChangeTargetBranch(doer *models.User, pr * func (*NullNotifier) NotifyPullRequestPushCommits(doer *models.User, pr *models.PullRequest, comment *models.Comment) { } +// NotifyPullRevieweDismiss notifies when a review was dismissed by repo admin +func (*NullNotifier) NotifyPullRevieweDismiss(doer *models.User, review *models.Review, comment *models.Comment) { +} + // NotifyUpdateComment places a place holder function func (*NullNotifier) NotifyUpdateComment(doer *models.User, c *models.Comment, oldContent string) { } diff --git a/modules/notification/mail/mail.go b/modules/notification/mail/mail.go index ee8a0c436c..f984ea7661 100644 --- a/modules/notification/mail/mail.go +++ b/modules/notification/mail/mail.go @@ -152,6 +152,12 @@ func (m *mailNotifier) NotifyPullRequestPushCommits(doer *models.User, pr *model m.NotifyCreateIssueComment(doer, comment.Issue.Repo, comment.Issue, comment, nil) } +func (m *mailNotifier) NotifyPullRevieweDismiss(doer *models.User, review *models.Review, comment *models.Comment) { + if err := mailer.MailParticipantsComment(comment, models.ActionPullReviewDismissed, review.Issue, []*models.User{}); err != nil { + log.Error("MailParticipantsComment: %v", err) + } +} + func (m *mailNotifier) NotifyNewRelease(rel *models.Release) { if err := rel.LoadAttributes(); err != nil { log.Error("NotifyNewRelease: %v", err) diff --git a/modules/notification/notification.go b/modules/notification/notification.go index 7ced57ce2d..d22d157bec 100644 --- a/modules/notification/notification.go +++ b/modules/notification/notification.go @@ -108,6 +108,13 @@ func NotifyPullRequestPushCommits(doer *models.User, pr *models.PullRequest, com } } +// NotifyPullRevieweDismiss notifies when a review was dismissed by repo admin +func NotifyPullRevieweDismiss(doer *models.User, review *models.Review, comment *models.Comment) { + for _, notifier := range notifiers { + notifier.NotifyPullRevieweDismiss(doer, review, comment) + } +} + // NotifyUpdateComment notifies update comment to notifiers func NotifyUpdateComment(doer *models.User, c *models.Comment, oldContent string) { for _, notifier := range notifiers { diff --git a/modules/notification/ui/ui.go b/modules/notification/ui/ui.go index 8e510e9cd4..25ea4d91c6 100644 --- a/modules/notification/ui/ui.go +++ b/modules/notification/ui/ui.go @@ -161,6 +161,15 @@ func (ns *notificationService) NotifyPullRequestPushCommits(doer *models.User, p _ = ns.issueQueue.Push(opts) } +func (ns *notificationService) NotifyPullRevieweDismiss(doer *models.User, review *models.Review, comment *models.Comment) { + var opts = issueNotificationOpts{ + IssueID: review.IssueID, + NotificationAuthorID: doer.ID, + CommentID: comment.ID, + } + _ = ns.issueQueue.Push(opts) +} + func (ns *notificationService) NotifyIssueChangeAssignee(doer *models.User, issue *models.Issue, assignee *models.User, removed bool, comment *models.Comment) { if !removed { var opts = issueNotificationOpts{ |