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
|
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 {
|
if c.ReviewID == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -732,11 +733,6 @@ func (c *Comment) loadReview(ctx context.Context) (err error) {
|
|||||||
return nil
|
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.
|
// 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 {
|
func (c *Comment) DiffSide() string {
|
||||||
if c.Line < 0 {
|
if c.Line < 0 {
|
||||||
@ -856,7 +852,7 @@ func updateCommentInfos(ctx context.Context, opts *CreateCommentOptions, comment
|
|||||||
}
|
}
|
||||||
if comment.ReviewID != 0 {
|
if comment.ReviewID != 0 {
|
||||||
if comment.Review == nil {
|
if comment.Review == nil {
|
||||||
if err := comment.loadReview(ctx); err != nil {
|
if err := comment.LoadReview(ctx); err != nil {
|
||||||
return err
|
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
|
// CreateIssueComment notifies issue comment related message to notifiers
|
||||||
func CreateIssueComment(ctx context.Context, doer *user_model.User, repo *repo_model.Repository,
|
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,
|
issue *issues_model.Issue, comment *issues_model.Comment, mentions []*user_model.User,
|
||||||
) {
|
) {
|
||||||
|
if !shouldSendCommentChangeNotification(ctx, comment) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
for _, notifier := range notifiers {
|
for _, notifier := range notifiers {
|
||||||
notifier.CreateIssueComment(ctx, doer, repo, issue, comment, mentions)
|
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
|
// UpdateComment notifies update comment to notifiers
|
||||||
func UpdateComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment, oldContent string) {
|
func UpdateComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment, oldContent string) {
|
||||||
|
if !shouldSendCommentChangeNotification(ctx, c) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
for _, notifier := range notifiers {
|
for _, notifier := range notifiers {
|
||||||
notifier.UpdateComment(ctx, doer, c, oldContent)
|
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
|
// DeleteComment notifies delete comment to notifiers
|
||||||
func DeleteComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment) {
|
func DeleteComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment) {
|
||||||
|
if !shouldSendCommentChangeNotification(ctx, c) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
for _, notifier := range notifiers {
|
for _, notifier := range notifiers {
|
||||||
notifier.DeleteComment(ctx, doer, c)
|
notifier.DeleteComment(ctx, doer, c)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user