diff --git a/src/jira/util/jira-client-util.test.ts b/src/jira/util/jira-client-util.test.ts index 02679dcbfa..2402f054e2 100644 --- a/src/jira/util/jira-client-util.test.ts +++ b/src/jira/util/jira-client-util.test.ts @@ -89,6 +89,27 @@ describe("Jira util", () => { expect(result).toBe(rendered); }); + it("should not add reference to existing markdown links", () => { + const { source, rendered } = loadFixture("existing-markdown-links"); + const issues = [ + { + key: "TEST-2019", + fields: { + summary: "Example Issue" + } + }, + { + key: "TEST-2020", + fields: { + summary: "Another Example Issue" + } + } + ]; + + const result = util.addJiraIssueLinks(source, issues); + expect(result).toBe(rendered); + }); + it("should not linkify Jira references to invalid issues", () => { const text = "Should not linkify [TEST-123] as a link"; const issues = []; diff --git a/src/util/jira-utils.ts b/src/util/jira-utils.ts index 58092fed93..79127f51d2 100644 --- a/src/util/jira-utils.ts +++ b/src/util/jira-utils.ts @@ -79,7 +79,7 @@ const jiraIssueRegex = (): RegExp => { * This regex is used when adding links to Jira issues in GitHub PR issue/descriptions. */ export const jiraIssueInSquareBracketsRegex = (): RegExp => { - return /(^|[^A-Z\d])\[([A-Z][A-Z\d]{1,255}-[1-9]\d{0,255})\]/giu; + return /(^|[^A-Z\d])\[([A-Z][A-Z\d]{1,255}-[1-9]\d{0,255})\](?!\()/giu; }; /** diff --git a/test/fixtures/text/existing-markdown-links.rendered.md b/test/fixtures/text/existing-markdown-links.rendered.md new file mode 100644 index 0000000000..8ff35d7ccc --- /dev/null +++ b/test/fixtures/text/existing-markdown-links.rendered.md @@ -0,0 +1,3 @@ +Should add a reference for [TEST-2019], but not for [TEST-2020](http://example.com/browse/TEST-2020?focusedCommentId=123). + +[TEST-2019]: http://example.com/browse/TEST-2019 diff --git a/test/fixtures/text/existing-markdown-links.source.md b/test/fixtures/text/existing-markdown-links.source.md new file mode 100644 index 0000000000..dad4e72dd2 --- /dev/null +++ b/test/fixtures/text/existing-markdown-links.source.md @@ -0,0 +1 @@ +Should add a reference for [TEST-2019], but not for [TEST-2020](http://example.com/browse/TEST-2020?focusedCommentId=123).