diff --git a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala index 2f93024..369e6cf 100644 --- a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala +++ b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala @@ -353,7 +353,16 @@ // close issue by commit message if (pullreq.requestBranch == repository.repository.defaultBranch) { commits.map { commit => - closeIssuesFromMessage(commit.fullMessage, loginAccount.userName, owner, name) + closeIssuesFromMessage(commit.fullMessage, loginAccount.userName, owner, name).foreach { + issueId => + getIssue(repository.owner, repository.name, issueId.toString).map { issue => + callIssuesWebHook("closed", repository, issue, baseUrl, loginAccount) + PluginRegistry().getIssueHooks + .foreach( + _.closedByCommitComment(issue, repository, commit.fullMessage, loginAccount) + ) + } + } } } @@ -458,15 +467,37 @@ val defaultBranch = getRepository(owner, name).get.repository.defaultBranch if (pullreq.branch == defaultBranch) { commits.flatten.foreach { commit => - closeIssuesFromMessage(commit.fullMessage, loginAccount.userName, owner, name) + closeIssuesFromMessage(commit.fullMessage, loginAccount.userName, owner, name).foreach { + issueId => + getIssue(owner, name, issueId.toString).map { issue => + callIssuesWebHook("closed", repository, issue, baseUrl, loginAccount) + PluginRegistry().getIssueHooks + .foreach(_.closedByCommitComment(issue, repository, commit.fullMessage, loginAccount)) + } + } } + val issueContent = issue.title + " " + issue.content.getOrElse("") closeIssuesFromMessage( - issue.title + " " + issue.content.getOrElse(""), + issueContent, loginAccount.userName, owner, name - ) - closeIssuesFromMessage(form.message, loginAccount.userName, owner, name) + ).foreach { + issueId => + getIssue(owner, name, issueId.toString).map { issue => + callIssuesWebHook("closed", repository, issue, baseUrl, loginAccount) + PluginRegistry().getIssueHooks + .foreach(_.closedByCommitComment(issue, repository, issueContent, loginAccount)) + } + } + closeIssuesFromMessage(form.message, loginAccount.userName, owner, name).foreach { + issueId => + getIssue(owner, name, issueId.toString).map { issue => + callIssuesWebHook("closed", repository, issue, baseUrl, loginAccount) + PluginRegistry().getIssueHooks + .foreach(_.closedByCommitComment(issue, repository, issueContent, loginAccount)) + } + } } updatePullRequests(owner, name, pullreq.branch) diff --git a/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala b/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala index 7a79584..d91dcf7 100644 --- a/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala @@ -1016,7 +1016,14 @@ // close issue by commit message if (branch == repository.repository.defaultBranch) { - closeIssuesFromMessage(message, loginAccount.userName, repository.owner, repository.name) + closeIssuesFromMessage(message, loginAccount.userName, repository.owner, repository.name).foreach { + issueId => + getIssue(repository.owner, repository.name, issueId.toString).map { issue => + callIssuesWebHook("closed", repository, issue, baseUrl, loginAccount) + PluginRegistry().getIssueHooks + .foreach(_.closedByCommitComment(issue, repository, message, loginAccount)) + } + } } // call post commit hook