diff --git a/src/main/scala/gitbucket/core/view/LinkConverter.scala b/src/main/scala/gitbucket/core/view/LinkConverter.scala index dbc76cc..34f5019 100644 --- a/src/main/scala/gitbucket/core/view/LinkConverter.scala +++ b/src/main/scala/gitbucket/core/view/LinkConverter.scala @@ -54,12 +54,14 @@ .replaceBy(("(?<=(^|\\W))([a-zA-Z0-9\\-_]+)/([a-zA-Z0-9\\-_\\.]+)" + issueIdPrefix + "([0-9]+)(?=(\\W|$))").r) { m => getIssueFromCache(m.group(2), m.group(3), m.group(4)) match { - case Some(issue) if (issue.isPullRequest) => - Some(s"""${m.group(2)}/${m.group( + case Some(pull) if (pull.isPullRequest) => + Some(s"""${m.group(2)}/${m.group( 3 )}#${m.group(4)}""") - case Some(_) => - Some(s"""${m.group(2)}/${m + case Some(issue) => + Some(s"""${m.group(2)}/${m .group(3)}#${m.group(4)}""") case None => Some(s"""${m.group(2)}/${m.group(3)}#${m.group(4)}""") @@ -93,11 +95,13 @@ .replaceBy(("(?<=(^|\\W))(GH-|(? val prefix = if (m.group(2) == "issue:") "#" else m.group(2) getIssueFromCache(repository.owner, repository.name, m.group(3)) match { - case Some(issue) if (issue.isPullRequest) => - Some(s"""${prefix}${m + case Some(pull) if (pull.isPullRequest) => + Some(s"""${prefix}${m .group(3)}""") - case Some(_) => - Some(s"""${prefix}${m + case Some(issue) => + Some(s"""${prefix}${m .group(3)}""") case None => Some(s"""${m.group(2)}${m.group(3)}""") diff --git a/src/main/scala/gitbucket/core/view/helpers.scala b/src/main/scala/gitbucket/core/view/helpers.scala index db35356..11cff99 100644 --- a/src/main/scala/gitbucket/core/view/helpers.scala +++ b/src/main/scala/gitbucket/core/view/helpers.scala @@ -208,15 +208,17 @@ Html( message .replaceAll("\\[issue:([^\\s]+?)/([^\\s]+?)#((\\d+))\\]"){ m => - if (getRepositoryInfoFromCache(m.group(1), m.group(2)).isDefined) { - s"""${m.group(1)}/${m.group(2)}#${m.group(3)}""" + val issue = getIssueFromCache(m.group(1), m.group(2), m.group(3)) + if (issue.isDefined) { + s"""${m.group(1)}/${m.group(2)}#${m.group(3)}""" } else { s"${m.group(1)}/${m.group(2)}#${m.group(3)}" } } .replaceAll("\\[pullreq:([^\\s]+?)/([^\\s]+?)#((\\d+))\\]"){ m => - if (getRepositoryInfoFromCache(m.group(1), m.group(2)).isDefined) { - s"""${m.group(1)}/${m.group(2)}#${m.group(3)}""" + val pullreq = getIssueFromCache(m.group(1), m.group(2), m.group(3)) + if (pullreq.isDefined) { + s"""${m.group(1)}/${m.group(2)}#${m.group(3)}""" } else { s"${m.group(1)}/${m.group(2)}#${m.group(3)}" }