mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	feat: notify doers of a merge when automerging (#21553)
I found myself wondering whether a PR I scheduled for automerge was actually merged. It was, but I didn't receive a mail notification for it - that makes sense considering I am the doer and usually don't want to receive such notifications. But ideally I want to receive a notification when a PR was merged because I scheduled it for automerge. This PR implements exactly that. The implementation works, but I wonder if there's a way to avoid passing the "This PR was automerged" state down so much. I tried solving this via the database (checking if there's an automerge scheduled for this PR when sending the notification) but that did not work reliably, probably because sending the notification happens async and the entry might have already been deleted. My implementation might be the most straightforward but maybe not the most elegant. Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								f17edfaf5a
							
						
					
				
			
			
				commit
				
					
						085f717529
					
				
			
		
					 18 changed files with 87 additions and 27 deletions
				
			
		|  | @ -283,6 +283,20 @@ func (*actionNotifier) NotifyMergePullRequest(pr *issues_model.PullRequest, doer | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (*actionNotifier) NotifyAutoMergePullRequest(pr *issues_model.PullRequest, doer *user_model.User) { | ||||
| 	if err := activities_model.NotifyWatchers(&activities_model.Action{ | ||||
| 		ActUserID: doer.ID, | ||||
| 		ActUser:   doer, | ||||
| 		OpType:    activities_model.ActionAutoMergePullRequest, | ||||
| 		Content:   fmt.Sprintf("%d|%s", pr.Issue.Index, pr.Issue.Title), | ||||
| 		RepoID:    pr.Issue.Repo.ID, | ||||
| 		Repo:      pr.Issue.Repo, | ||||
| 		IsPrivate: pr.Issue.Repo.IsPrivate, | ||||
| 	}); err != nil { | ||||
| 		log.Error("NotifyWatchers [%d]: %v", pr.ID, err) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (*actionNotifier) NotifyPullRevieweDismiss(doer *user_model.User, review *issues_model.Review, comment *issues_model.Comment) { | ||||
| 	reviewerName := review.Reviewer.Name | ||||
| 	if len(review.OriginalAuthor) > 0 { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue