From 8319b1df52d3d1ebf3df8e848a101f5ba413e229 Mon Sep 17 00:00:00 2001 From: Yanis Benson <yanis.benson@gmail.com> Date: Fri, 13 Aug 2021 15:10:24 +0300 Subject: [PATCH] fix: remove double hyphens from branch names (#11186) Removes double or more hyphens from branch names and replaces with a single hyphen. Closes #8260 BREAKING CHANGE: Branches with double hyphens will be changed to single hyphens, which can result in some existing PRs being autoclosed and replacements opened. --- lib/workers/repository/updates/branch-name.spec.ts | 12 ++++++++++-- lib/workers/repository/updates/branch-name.ts | 5 ++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/workers/repository/updates/branch-name.spec.ts b/lib/workers/repository/updates/branch-name.spec.ts index ff816d07f1..115b60c7b1 100644 --- a/lib/workers/repository/updates/branch-name.spec.ts +++ b/lib/workers/repository/updates/branch-name.spec.ts @@ -225,11 +225,11 @@ describe(getName(), () => { }, { upgrade: { branchName: 'renovate/bad-branch-^-name3' }, - expectedBranchName: 'renovate/bad-branch---name3', + expectedBranchName: 'renovate/bad-branch-name3', }, { upgrade: { branchName: 'renovate/bad-branch-name : 4' }, - expectedBranchName: 'renovate/bad-branch-name---4', + expectedBranchName: 'renovate/bad-branch-name-4', }, { upgrade: { branchName: 'renovate/bad-branch-name5/' }, @@ -251,6 +251,14 @@ describe(getName(), () => { upgrade: { branchName: 'renovate/bad-branch-name9.' }, expectedBranchName: 'renovate/bad-branch-name9', }, + { + upgrade: { branchName: 'renovate/bad-branch--name10' }, + expectedBranchName: 'renovate/bad-branch-name10', + }, + { + upgrade: { branchName: 'renovate/bad--branch---name11' }, + expectedBranchName: 'renovate/bad-branch-name11', + }, ]; 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 78454f101f..e56e2da710 100644 --- a/lib/workers/repository/updates/branch-name.ts +++ b/lib/workers/repository/updates/branch-name.ts @@ -7,6 +7,7 @@ import * as template from '../../../util/template'; const MIN_HASH_LENGTH = 6; +const RE_MULTIPLE_DASH = /--+/g; /** * Clean git branch name * @@ -14,12 +15,14 @@ const MIN_HASH_LENGTH = 6; * - leading dot/leading dot after slash * - trailing dot * - whitespace + * - chained dashes(breaks markdown comments) are replaced by single dash */ function cleanBranchName(branchName: string): string { return cleanGitRef(branchName) .replace(/^\.|\.$/, '') // leading or trailing dot .replace(/\/\./g, '/') // leading dot after slash - .replace(/\s/g, ''); // whitespace + .replace(/\s/g, '') // whitespace + .replace(RE_MULTIPLE_DASH, '-'); // chained dashes } /* eslint-disable no-param-reassign */ -- GitLab