From 1b404a175548e967a827d374b58a51a8a39ec7be Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 9 Aug 2026 14:49:39 +0800 Subject: [PATCH] fix(release): accept repeated PR title suffixes (#120948) --- .../scripts/verify-release-notes.mjs | 2 +- test/scripts/verify-release-notes.test.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.agents/skills/openclaw-changelog-update/scripts/verify-release-notes.mjs b/.agents/skills/openclaw-changelog-update/scripts/verify-release-notes.mjs index da233beac773..7a7a37c6d3c9 100644 --- a/.agents/skills/openclaw-changelog-update/scripts/verify-release-notes.mjs +++ b/.agents/skills/openclaw-changelog-update/scripts/verify-release-notes.mjs @@ -684,7 +684,7 @@ export function contributionRecordTarget(section) { } export function pullRequestTitleFromCommitSubject(subject, number) { - const match = subject.match(/^(?\S(?:.*\S)?) \(#(?<number>[1-9]\d*)\)$/u); + const match = subject.match(/^(?<title>\S(?:.*?\S)?)(?<pr> \(#(?<number>[1-9]\d*)\))\k<pr>*$/u); return match?.groups?.number === String(number) ? match.groups.title : undefined; } diff --git a/test/scripts/verify-release-notes.test.ts b/test/scripts/verify-release-notes.test.ts index 312e2ff9a745..e7c80e9a024b 100644 --- a/test/scripts/verify-release-notes.test.ts +++ b/test/scripts/verify-release-notes.test.ts @@ -59,8 +59,12 @@ describe("release-note verification", () => { it("accepts only canonical commit PR suffixes", () => { expect(pullRequestTitleFromCommitSubject("Fix status (#102147)", 102147)).toBe("Fix status"); + expect(pullRequestTitleFromCommitSubject("Fix status (#102147) (#102147)", 102147)).toBe( + "Fix status", + ); expect(pullRequestTitleFromCommitSubject("Fix status(#102147)", 102147)).toBeUndefined(); expect(pullRequestTitleFromCommitSubject("Fix status (#0102147)", 102147)).toBeUndefined(); + expect(pullRequestTitleFromCommitSubject("Fix status (#0)", 0)).toBeUndefined(); expect(pullRequestTitleFromCommitSubject(" Fix status (#102147)", 102147)).toBeUndefined(); expect(pullRequestTitleFromCommitSubject("Fix status (#102147) ", 102147)).toBeUndefined(); expect(pullRequestTitleFromCommitSubject("Fix status (#102148)", 102147)).toBeUndefined();