@@ -521,6 +521,44 @@ func (m *webhookNotifier) NotifyPushCommits(pusher *models.User, repo *models.Re
521521 }
522522}
523523
524+ func (* webhookNotifier ) NotifyMergePullRequest (pr * models.PullRequest , doer * models.User , baseRepo * git.Repository ) {
525+ // Reload pull request information.
526+ if err := pr .LoadAttributes (); err != nil {
527+ log .Error ("LoadAttributes: %v" , err )
528+ return
529+ }
530+
531+ if err := pr .LoadIssue (); err != nil {
532+ log .Error ("LoadAttributes: %v" , err )
533+ return
534+ }
535+
536+ if err := pr .Issue .LoadRepo (); err != nil {
537+ log .Error ("pr.Issue.LoadRepo: %v" , err )
538+ return
539+ }
540+
541+ mode , err := models .AccessLevel (doer , pr .Issue .Repo )
542+ if err != nil {
543+ log .Error ("models.AccessLevel: %v" , err )
544+ return
545+ }
546+
547+ // Merge pull request calls issue.changeStatus so we need to handle separately.
548+ apiPullRequest := & api.PullRequestPayload {
549+ Index : pr .Issue .Index ,
550+ PullRequest : pr .APIFormat (),
551+ Repository : pr .Issue .Repo .APIFormat (mode ),
552+ Sender : doer .APIFormat (),
553+ Action : api .HookIssueClosed ,
554+ }
555+
556+ err = webhook_module .PrepareWebhooks (pr .Issue .Repo , models .HookEventPullRequest , apiPullRequest )
557+ if err != nil {
558+ log .Error ("PrepareWebhooks: %v" , err )
559+ }
560+ }
561+
524562func (m * webhookNotifier ) NotifyPullRequestReview (pr * models.PullRequest , review * models.Review , comment * models.Comment ) {
525563 var reviewHookType models.HookEventType
526564
0 commit comments