mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Reload issue when sending webhook to make num comments is right. (#35243)
Fix #35229 --------- Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
		| @@ -263,11 +263,6 @@ func (n *actionsNotifier) CreateIssueComment(ctx context.Context, doer *user_mod | |||||||
| func (n *actionsNotifier) UpdateComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment, oldContent string) { | func (n *actionsNotifier) UpdateComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment, oldContent string) { | ||||||
| 	ctx = withMethod(ctx, "UpdateComment") | 	ctx = withMethod(ctx, "UpdateComment") | ||||||
|  |  | ||||||
| 	if err := c.LoadIssue(ctx); err != nil { |  | ||||||
| 		log.Error("LoadIssue: %v", err) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if c.Issue.IsPull { | 	if c.Issue.IsPull { | ||||||
| 		notifyIssueCommentChange(ctx, doer, c, oldContent, webhook_module.HookEventPullRequestComment, api.HookIssueCommentEdited) | 		notifyIssueCommentChange(ctx, doer, c, oldContent, webhook_module.HookEventPullRequestComment, api.HookIssueCommentEdited) | ||||||
| 		return | 		return | ||||||
| @@ -278,11 +273,6 @@ func (n *actionsNotifier) UpdateComment(ctx context.Context, doer *user_model.Us | |||||||
| func (n *actionsNotifier) DeleteComment(ctx context.Context, doer *user_model.User, comment *issues_model.Comment) { | func (n *actionsNotifier) DeleteComment(ctx context.Context, doer *user_model.User, comment *issues_model.Comment) { | ||||||
| 	ctx = withMethod(ctx, "DeleteComment") | 	ctx = withMethod(ctx, "DeleteComment") | ||||||
|  |  | ||||||
| 	if err := comment.LoadIssue(ctx); err != nil { |  | ||||||
| 		log.Error("LoadIssue: %v", err) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if comment.Issue.IsPull { | 	if comment.Issue.IsPull { | ||||||
| 		notifyIssueCommentChange(ctx, doer, comment, "", webhook_module.HookEventPullRequestComment, api.HookIssueCommentDeleted) | 		notifyIssueCommentChange(ctx, doer, comment, "", webhook_module.HookEventPullRequestComment, api.HookIssueCommentDeleted) | ||||||
| 		return | 		return | ||||||
| @@ -291,6 +281,7 @@ func (n *actionsNotifier) DeleteComment(ctx context.Context, doer *user_model.Us | |||||||
| } | } | ||||||
|  |  | ||||||
| func notifyIssueCommentChange(ctx context.Context, doer *user_model.User, comment *issues_model.Comment, oldContent string, event webhook_module.HookEventType, action api.HookIssueCommentAction) { | func notifyIssueCommentChange(ctx context.Context, doer *user_model.User, comment *issues_model.Comment, oldContent string, event webhook_module.HookEventType, action api.HookIssueCommentAction) { | ||||||
|  | 	comment.Issue = nil // force issue to be loaded | ||||||
| 	if err := comment.LoadIssue(ctx); err != nil { | 	if err := comment.LoadIssue(ctx); err != nil { | ||||||
| 		log.Error("LoadIssue: %v", err) | 		log.Error("LoadIssue: %v", err) | ||||||
| 		return | 		return | ||||||
|   | |||||||
| @@ -80,6 +80,12 @@ func CreateIssueComment(ctx context.Context, doer *user_model.User, repo *repo_m | |||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	// reload issue to ensure it has the latest data, especially the number of comments | ||||||
|  | 	issue, err = issues_model.GetIssueByID(ctx, issue.ID) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	notify_service.CreateIssueComment(ctx, doer, repo, issue, comment, mentions) | 	notify_service.CreateIssueComment(ctx, doer, repo, issue, comment, mentions) | ||||||
|  |  | ||||||
| 	return comment, nil | 	return comment, nil | ||||||
|   | |||||||
| @@ -481,6 +481,7 @@ func (m *webhookNotifier) DeleteComment(ctx context.Context, doer *user_model.Us | |||||||
| 		log.Error("LoadPoster: %v", err) | 		log.Error("LoadPoster: %v", err) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  | 	comment.Issue = nil // reload issue to ensure it has the latest data, especially the number of comments | ||||||
| 	if err = comment.LoadIssue(ctx); err != nil { | 	if err = comment.LoadIssue(ctx); err != nil { | ||||||
| 		log.Error("LoadIssue: %v", err) | 		log.Error("LoadIssue: %v", err) | ||||||
| 		return | 		return | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user