mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-08 21:54:42 +00:00
Don't send trigger for a pending review's comment create/update/delete (#34928)
Fix #18846 Fix #34924 --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
parent
6455c8202b
commit
8cbec63cc7
@ -715,7 +715,8 @@ func (c *Comment) LoadReactions(ctx context.Context, repo *repo_model.Repository
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Comment) loadReview(ctx context.Context) (err error) {
|
||||
// LoadReview loads the associated review
|
||||
func (c *Comment) LoadReview(ctx context.Context) (err error) {
|
||||
if c.ReviewID == 0 {
|
||||
return nil
|
||||
}
|
||||
@ -732,11 +733,6 @@ func (c *Comment) loadReview(ctx context.Context) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
// LoadReview loads the associated review
|
||||
func (c *Comment) LoadReview(ctx context.Context) error {
|
||||
return c.loadReview(ctx)
|
||||
}
|
||||
|
||||
// DiffSide returns "previous" if Comment.Line is a LOC of the previous changes and "proposed" if it is a LOC of the proposed changes.
|
||||
func (c *Comment) DiffSide() string {
|
||||
if c.Line < 0 {
|
||||
@ -856,7 +852,7 @@ func updateCommentInfos(ctx context.Context, opts *CreateCommentOptions, comment
|
||||
}
|
||||
if comment.ReviewID != 0 {
|
||||
if comment.Review == nil {
|
||||
if err := comment.loadReview(ctx); err != nil {
|
||||
if err := comment.LoadReview(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -46,10 +46,25 @@ func DeleteWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model
|
||||
}
|
||||
}
|
||||
|
||||
func shouldSendCommentChangeNotification(ctx context.Context, comment *issues_model.Comment) bool {
|
||||
if err := comment.LoadReview(ctx); err != nil {
|
||||
log.Error("LoadReview: %v", err)
|
||||
return false
|
||||
} else if comment.Review != nil && comment.Review.Type == issues_model.ReviewTypePending {
|
||||
// Pending review comments updating should not triggered
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// CreateIssueComment notifies issue comment related message to notifiers
|
||||
func CreateIssueComment(ctx context.Context, doer *user_model.User, repo *repo_model.Repository,
|
||||
issue *issues_model.Issue, comment *issues_model.Comment, mentions []*user_model.User,
|
||||
) {
|
||||
if !shouldSendCommentChangeNotification(ctx, comment) {
|
||||
return
|
||||
}
|
||||
|
||||
for _, notifier := range notifiers {
|
||||
notifier.CreateIssueComment(ctx, doer, repo, issue, comment, mentions)
|
||||
}
|
||||
@ -156,6 +171,10 @@ func PullReviewDismiss(ctx context.Context, doer *user_model.User, review *issue
|
||||
|
||||
// UpdateComment notifies update comment to notifiers
|
||||
func UpdateComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment, oldContent string) {
|
||||
if !shouldSendCommentChangeNotification(ctx, c) {
|
||||
return
|
||||
}
|
||||
|
||||
for _, notifier := range notifiers {
|
||||
notifier.UpdateComment(ctx, doer, c, oldContent)
|
||||
}
|
||||
@ -163,6 +182,10 @@ func UpdateComment(ctx context.Context, doer *user_model.User, c *issues_model.C
|
||||
|
||||
// DeleteComment notifies delete comment to notifiers
|
||||
func DeleteComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment) {
|
||||
if !shouldSendCommentChangeNotification(ctx, c) {
|
||||
return
|
||||
}
|
||||
|
||||
for _, notifier := range notifiers {
|
||||
notifier.DeleteComment(ctx, doer, c)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user