mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 03:02:14 +01: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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user