diff --git a/lib/workers/repository/updates/branch-name.spec.ts b/lib/workers/repository/updates/branch-name.spec.ts index 3475b7328795b299b5f7817c87c21d8968163f5c..a1436ee7c3b4b262928b37d4e4c84ee4340444ba 100644 --- a/lib/workers/repository/updates/branch-name.spec.ts +++ b/lib/workers/repository/updates/branch-name.spec.ts @@ -220,7 +220,7 @@ describe('workers/repository/updates/branch-name', () => { }, { upgrade: { branchName: 'renovate/~bad-branch-name2' }, - expectedBranchName: 'renovate/-bad-branch-name2', + expectedBranchName: 'renovate/bad-branch-name2', }, { upgrade: { branchName: 'renovate/bad-branch-^-name3' }, @@ -258,6 +258,10 @@ describe('workers/repository/updates/branch-name', () => { upgrade: { branchName: 'renovate/bad--branch---name11' }, expectedBranchName: 'renovate/bad-branch-name11', }, + { + upgrade: { branchName: 'renovate-/[start]-something-[end]' }, + expectedBranchName: 'renovate/start-something-end', + }, ]; fixtures.forEach((fixture) => { generateBranchName(fixture.upgrade); diff --git a/lib/workers/repository/updates/branch-name.ts b/lib/workers/repository/updates/branch-name.ts index 15433fb94b2004b129ba231d4445baeeb4e3302c..7e45f0802df0efe0005f91867f8eaf1bcc027bed 100644 --- a/lib/workers/repository/updates/branch-name.ts +++ b/lib/workers/repository/updates/branch-name.ts @@ -24,6 +24,8 @@ function cleanBranchName(branchName: string): string { .replace(regEx(/\/\./g), '/') // leading dot after slash .replace(regEx(/\s/g), '') // whitespace .replace(regEx(/[[\]?:\\^~]/g), '-') // massage out all these characters: : ? [ \ ^ ~ + .replace(regEx(/(^|\/)-+/g), '$1') // leading dashes + .replace(regEx(/-+(\/|$)/g), '$1') // trailing dashes .replace(RE_MULTIPLE_DASH, '-'); // chained dashes }