diff --git a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala index 7b9a57b..839da3f 100644 --- a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala +++ b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala @@ -324,8 +324,8 @@ get("/:owner/:repository/compare/*...*")(referrersOnly { forkedRepository => val Seq(origin, forked) = multiParams("splat") - val (originOwner, originId) = parseCompareIdentifie(origin, forkedRepository.owner) - val (forkedOwner, forkedId) = parseCompareIdentifie(forked, forkedRepository.owner) + val (originOwner, originId) = parseCompareIdentifier(origin, forkedRepository.owner) + val (forkedOwner, forkedId) = parseCompareIdentifier(forked, forkedRepository.owner) (for( originRepositoryName <- if(originOwner == forkedOwner) { @@ -411,8 +411,8 @@ ajaxGet("/:owner/:repository/compare/*...*/mergecheck")(readableUsersOnly { forkedRepository => val Seq(origin, forked) = multiParams("splat") - val (originOwner, tmpOriginBranch) = parseCompareIdentifie(origin, forkedRepository.owner) - val (forkedOwner, tmpForkedBranch) = parseCompareIdentifie(forked, forkedRepository.owner) + val (originOwner, tmpOriginBranch) = parseCompareIdentifier(origin, forkedRepository.owner) + val (forkedOwner, tmpForkedBranch) = parseCompareIdentifier(forked, forkedRepository.owner) (for( originRepositoryName <- if(originOwner == forkedOwner){ @@ -505,7 +505,7 @@ * - "owner:branch" to ("owner", "branch") * - "branch" to ("defaultOwner", "branch") */ - private def parseCompareIdentifie(value: String, defaultOwner: String): (String, String) = + private def parseCompareIdentifier(value: String, defaultOwner: String): (String, String) = if(value.contains(':')){ val array = value.split(":") (array(0), array(1)) diff --git a/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala b/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala index 989debd..df4af27 100644 --- a/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala @@ -478,9 +478,13 @@ val comment = getCommitComment(repository.owner, repository.name, commentId.toString).get form.issueId match { case Some(issueId) => - recordCommentPullRequestActivity(repository.owner, repository.name, context.loginAccount.get.userName, issueId, form.content) - callPullRequestReviewCommentWebHook("create", comment, repository, issueId, context.baseUrl, context.loginAccount.get) - case None => recordCommentCommitActivity(repository.owner, repository.name, context.loginAccount.get.userName, id, form.content) + getPullRequest(repository.owner, repository.name, issueId).foreach { case (issue, pullRequest) => + recordCommentPullRequestActivity(repository.owner, repository.name, context.loginAccount.get.userName, issueId, form.content) + PluginRegistry().getPullRequestHooks.foreach(_.addedComment(commentId, form.content, issue, repository)) + callPullRequestReviewCommentWebHook("create", comment, repository, issue, pullRequest, context.baseUrl, context.loginAccount.get) + } + case None => + recordCommentCommitActivity(repository.owner, repository.name, context.loginAccount.get.userName, id, form.content) } helper.html.commitcomment(comment, hasDeveloperRole(repository.owner, repository.name, context.loginAccount), repository) }) diff --git a/src/main/scala/gitbucket/core/service/WebHookService.scala b/src/main/scala/gitbucket/core/service/WebHookService.scala index dc2b9b6..1558115 100644 --- a/src/main/scala/gitbucket/core/service/WebHookService.scala +++ b/src/main/scala/gitbucket/core/service/WebHookService.scala @@ -296,13 +296,13 @@ trait WebHookPullRequestReviewCommentService extends WebHookService { self: AccountService with RepositoryService with PullRequestService with IssuesService with CommitsService => - def callPullRequestReviewCommentWebHook(action: String, comment: CommitComment, repository: RepositoryService.RepositoryInfo, issueId: Int, baseUrl: String, sender: Account) + def callPullRequestReviewCommentWebHook(action: String, comment: CommitComment, repository: RepositoryService.RepositoryInfo, + issue: Issue, pullRequest: PullRequest, baseUrl: String, sender: Account) (implicit s: Session, c: JsonFormat.Context): Unit = { import WebHookService._ callWebHookOf(repository.owner, repository.name, WebHook.PullRequestReviewComment){ + val users = getAccountsByUserNames(Set(repository.owner, pullRequest.requestUserName, issue.openedUserName), Set(sender)) for{ - (issue, pullRequest) <- getPullRequest(repository.owner, repository.name, issueId) - users = getAccountsByUserNames(Set(repository.owner, pullRequest.requestUserName, issue.openedUserName), Set(sender)) baseOwner <- users.get(repository.owner) headOwner <- users.get(pullRequest.requestUserName) issueUser <- users.get(issue.openedUserName)