diff --git a/src/main/scala/gitbucket/core/service/IssuesService.scala b/src/main/scala/gitbucket/core/service/IssuesService.scala index 8f665c6..c9854ea 100644 --- a/src/main/scala/gitbucket/core/service/IssuesService.scala +++ b/src/main/scala/gitbucket/core/service/IssuesService.scala @@ -700,11 +700,12 @@ def closeIssuesFromMessage(message: String, userName: String, owner: String, repository: String)( implicit s: Session - ): Unit = { - extractCloseId(message).foreach { issueId => - for (issue <- getIssue(owner, repository, issueId) if !issue.closed) { + ): Seq[Int] = { + extractCloseId(message).flatMap { issueId => + for (issue <- getIssue(owner, repository, issueId) if !issue.closed) yield { createComment(owner, repository, userName, issue.issueId, "Close", "close") updateClosed(owner, repository, issue.issueId, true) + issue.issueId } } } diff --git a/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala b/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala index 3ae5257..cfc5f3b 100644 --- a/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala +++ b/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala @@ -296,7 +296,13 @@ createIssueComment(owner, repository, commit) // close issues if (refName(1) == "heads" && branchName == defaultBranch && command.getType == ReceiveCommand.Type.UPDATE) { - closeIssuesFromMessage(commit.fullMessage, pusher, owner, repository) + getAccountByUserName(pusher).map { pusherAccount => + closeIssuesFromMessage(commit.fullMessage, pusher, owner, repository).foreach { issueId => + getIssue(owner, repository, issueId.toString).map { issue => + callIssuesWebHook("closed", repositoryInfo, issue, baseUrl, pusherAccount) + } + } + } } } Some(commit)