mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Add push commits history comment on PR time-line (#11167)
* Add push commits history comment on PR time-line * Add notify by email and ui of this comment type also Signed-off-by: a1012112796 <1012112796@qq.com> * Add migrations for IsForcePush * fix wrong force-push judgement * Apply suggestions from code review * Remove commit number check * add own notify fun * fix some typo Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> * fix lint * fix style again, I forgot something before * Change email notify way * fix api * add number check if It's force-push * Add repo commit link fuction remove unnecessary check skip show push commits comment which not have commits alive * Update issue_comment.go * Apply suggestions from code review Co-authored-by: mrsdizzie <info@mrsdizzie.com> * Apply suggestions from code review * fix ui view Co-authored-by: silverwind <me@silverwind.io> * fix height * remove unnecessary style define * simplify GetBranchName * Apply suggestions from code review * save commit ids and isForce push by json * simplify GetBranchName * fix bug Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> Co-authored-by: mrsdizzie <info@mrsdizzie.com> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
		| @@ -36,6 +36,7 @@ type Notifier interface { | ||||
| 	NotifyPullRequestSynchronized(doer *models.User, pr *models.PullRequest) | ||||
| 	NotifyPullRequestReview(*models.PullRequest, *models.Review, *models.Comment) | ||||
| 	NotifyPullRequestChangeTargetBranch(doer *models.User, pr *models.PullRequest, oldBranch string) | ||||
| 	NotifyPullRequestPushCommits(doer *models.User, pr *models.PullRequest, comment *models.Comment) | ||||
|  | ||||
| 	NotifyCreateIssueComment(*models.User, *models.Repository, | ||||
| 		*models.Issue, *models.Comment) | ||||
|   | ||||
| @@ -54,6 +54,10 @@ func (*NullNotifier) NotifyPullRequestSynchronized(doer *models.User, pr *models | ||||
| func (*NullNotifier) NotifyPullRequestChangeTargetBranch(doer *models.User, pr *models.PullRequest, oldBranch string) { | ||||
| } | ||||
|  | ||||
| // NotifyPullRequestPushCommits notifies when push commits to pull request's head branch | ||||
| func (*NullNotifier) NotifyPullRequestPushCommits(doer *models.User, pr *models.PullRequest, comment *models.Comment) { | ||||
| } | ||||
|  | ||||
| // NotifyUpdateComment places a place holder function | ||||
| func (*NullNotifier) NotifyUpdateComment(doer *models.User, c *models.Comment, oldContent string) { | ||||
| } | ||||
|   | ||||
| @@ -37,6 +37,8 @@ func (m *mailNotifier) NotifyCreateIssueComment(doer *models.User, repo *models. | ||||
| 		act = models.ActionCommentIssue | ||||
| 	} else if comment.Type == models.CommentTypeCode { | ||||
| 		act = models.ActionCommentIssue | ||||
| 	} else if comment.Type == models.CommentTypePullPush { | ||||
| 		act = 0 | ||||
| 	} | ||||
|  | ||||
| 	if err := mailer.MailParticipantsComment(comment, act, issue); err != nil { | ||||
| @@ -117,3 +119,29 @@ func (m *mailNotifier) NotifyMergePullRequest(pr *models.PullRequest, doer *mode | ||||
| 		log.Error("MailParticipants: %v", err) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (m *mailNotifier) NotifyPullRequestPushCommits(doer *models.User, pr *models.PullRequest, comment *models.Comment) { | ||||
| 	var err error | ||||
| 	if err = comment.LoadIssue(); err != nil { | ||||
| 		log.Error("comment.LoadIssue: %v", err) | ||||
| 		return | ||||
| 	} | ||||
| 	if err = comment.Issue.LoadRepo(); err != nil { | ||||
| 		log.Error("comment.Issue.LoadRepo: %v", err) | ||||
| 		return | ||||
| 	} | ||||
| 	if err = comment.Issue.LoadPullRequest(); err != nil { | ||||
| 		log.Error("comment.Issue.LoadPullRequest: %v", err) | ||||
| 		return | ||||
| 	} | ||||
| 	if err = comment.Issue.PullRequest.LoadBaseRepo(); err != nil { | ||||
| 		log.Error("comment.Issue.PullRequest.LoadBaseRepo: %v", err) | ||||
| 		return | ||||
| 	} | ||||
| 	if err := comment.LoadPushCommits(); err != nil { | ||||
| 		log.Error("comment.LoadPushCommits: %v", err) | ||||
| 	} | ||||
| 	comment.Content = "" | ||||
|  | ||||
| 	m.NotifyCreateIssueComment(doer, comment.Issue.Repo, comment.Issue, comment) | ||||
| } | ||||
|   | ||||
| @@ -94,6 +94,13 @@ func NotifyPullRequestChangeTargetBranch(doer *models.User, pr *models.PullReque | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // NotifyPullRequestPushCommits notifies when push commits to pull request's head branch | ||||
| func NotifyPullRequestPushCommits(doer *models.User, pr *models.PullRequest, comment *models.Comment) { | ||||
| 	for _, notifier := range notifiers { | ||||
| 		notifier.NotifyPullRequestPushCommits(doer, pr, comment) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // NotifyUpdateComment notifies update comment to notifiers | ||||
| func NotifyUpdateComment(doer *models.User, c *models.Comment, oldContent string) { | ||||
| 	for _, notifier := range notifiers { | ||||
|   | ||||
| @@ -105,6 +105,15 @@ func (ns *notificationService) NotifyPullRequestReview(pr *models.PullRequest, r | ||||
| 	_ = ns.issueQueue.Push(opts) | ||||
| } | ||||
|  | ||||
| func (ns *notificationService) NotifyPullRequestPushCommits(doer *models.User, pr *models.PullRequest, comment *models.Comment) { | ||||
| 	var opts = issueNotificationOpts{ | ||||
| 		IssueID:              pr.IssueID, | ||||
| 		NotificationAuthorID: doer.ID, | ||||
| 		CommentID:            comment.ID, | ||||
| 	} | ||||
| 	_ = ns.issueQueue.Push(opts) | ||||
| } | ||||
|  | ||||
| func (ns *notificationService) NotifyIssueChangeAssignee(doer *models.User, issue *models.Issue, assignee *models.User, removed bool, comment *models.Comment) { | ||||
| 	if !removed { | ||||
| 		var opts = issueNotificationOpts{ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user