From 07f2672e25626b7f8c7329216496bfa962b3c6e9 Mon Sep 17 00:00:00 2001 From: Andreas Bichinger Date: Wed, 16 Oct 2024 21:44:29 +0200 Subject: [PATCH] fix(branch-naming): prevent non-range versions from being identified as maintenance branches This change makes the second segment the optional one rather than the third segment. That ensures that a maintenance branch always needs to end with `.x` Co-authored-by: Matt Travi --- lib/utils.js | 2 +- test/definitions/branches.test.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/utils.js b/lib/utils.js index b967f90c..180c98f1 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -27,7 +27,7 @@ export function isMajorRange(range) { } export function isMaintenanceRange(range) { - return /^\d+\.(?:\d+|x)(?:\.x)?$/i.test(range); + return /^\d+(?:\.(?:\d+|x))?\.x$/i.test(range); } export function getUpperBound(range) { diff --git a/test/definitions/branches.test.js b/test/definitions/branches.test.js index 9da4bd25..d45204a0 100644 --- a/test/definitions/branches.test.js +++ b/test/definitions/branches.test.js @@ -15,6 +15,7 @@ test('A "maintenance" branch is identified by having a "range" property or a "na t.false(maintenance.filter({ name: "some-name", range: false })); t.false(maintenance.filter({ name: "some-name" })); t.false(maintenance.filter({ name: "1.0.0" })); + t.false(maintenance.filter({ name: "1.0" })); t.false(maintenance.filter({ name: "x.x.x" })); /* eslint-enable unicorn/no-fn-reference-in-iterator */ });