@@ -521,6 +521,44 @@ func (m *webhookNotifier) NotifyPushCommits(pusher *models.User, repo *models.Re
521
521
}
522
522
}
523
523
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
+
524
562
func (m * webhookNotifier ) NotifyPullRequestReview (pr * models.PullRequest , review * models.Review , comment * models.Comment ) {
525
563
var reviewHookType models.HookEventType
526
564
0 commit comments