diff --git a/release/src/linked-issues.ts b/release/src/linked-issues.ts index 4662c1923f7e4549cdb9a256922f1f9fcbd9150f..b7b6cdbee798dd7e37a29fa26b75a682a530a415 100644 --- a/release/src/linked-issues.ts +++ b/release/src/linked-issues.ts @@ -14,7 +14,8 @@ export function getLinkedIssues(body: string) { } export function getPRsFromCommitMessage(message: string) { - const result = [ ...message.matchAll(/\(#(\d+)\)/g) ]; + const firstLine = message.split('\n\n')[0]; + const result = [ ...firstLine.matchAll(/\(#(\d+)\)/g) ]; if (!result.length) { console.log('no pr found in commit message', message); return null; diff --git a/release/src/linked-issues.unit.spec.ts b/release/src/linked-issues.unit.spec.ts index 9efa996af2c48e83bae1bc343fb985635e418eeb..76d1de51daa64a5e50cc2351342f2d3fab39abaf 100644 --- a/release/src/linked-issues.unit.spec.ts +++ b/release/src/linked-issues.unit.spec.ts @@ -129,6 +129,14 @@ describe("getPRsFromCommitMessage", () => { it("should return the PR id for a message with multiple backport PRs", () => { expect(getPRsFromCommitMessage("Backport (#123) (#456)")).toEqual([123, 456]); expect(getPRsFromCommitMessage("Backport (#1234) and (#4567)")).toEqual([1234, 4567]); + expect(getPRsFromCommitMessage("Backport (#1234) and (#4567) (#8989)")).toEqual([1234, 4567, 8989]); + }); + + it("should ignore pr numbers outside the title", () => { + expect(getPRsFromCommitMessage("Backport (#123) (#456)\n\n(#888) (#999)")).toEqual([123, 456]); + expect(getPRsFromCommitMessage("Backport (#1234) and (#4567)\n\n(#888)")).toEqual([1234, 4567]); + expect(getPRsFromCommitMessage("Backport (#1234)\n\n and (#4567) (#8989)")).toEqual([1234]); + expect(getPRsFromCommitMessage("Backport\n\n (#1234)\n\n and (#4567) (#8989)")).toEqual(null); }); });