mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-30 06:38:37 -04:00 
			
		
		
		
	Backport #34928 by lunny Fix #18846 Fix #34924 Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		| @@ -719,7 +719,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 | ||||
| 	} | ||||
| @@ -736,11 +737,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 { | ||||
| @@ -860,7 +856,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) | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user