From ddc9a17028882173f9129467712814074990ea3c Mon Sep 17 00:00:00 2001 From: Rick Rackow Date: Fri, 26 Jun 2026 09:40:40 +0200 Subject: [PATCH] fix(validate): extend allowed full version regex to allow patch/pre-release version --- stackit/internal/validate/validate.go | 5 ++++- stackit/internal/validate/validate_test.go | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/stackit/internal/validate/validate.go b/stackit/internal/validate/validate.go index 502187733..6cbdb45b5 100644 --- a/stackit/internal/validate/validate.go +++ b/stackit/internal/validate/validate.go @@ -23,7 +23,10 @@ import ( const ( MajorMinorVersionRegex = `^\d+\.\d+?$` - FullVersionRegex = `^\d+\.\d+.\d+?$` + FullVersionRegex = `^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)` + + `(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)` + + `(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?` + + `(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$` ) type Validator struct { diff --git a/stackit/internal/validate/validate_test.go b/stackit/internal/validate/validate_test.go index c08a70d14..9fe361a27 100644 --- a/stackit/internal/validate/validate_test.go +++ b/stackit/internal/validate/validate_test.go @@ -551,6 +551,26 @@ func TestVersionNumber(t *testing.T) { "10.20.10", true, }, + { + "ok-patch-version-prerelease", + "1.20.1-alpha", + true, + }, + { + "ok-patch-version-prerelease-with-dot-separator", + "1.20.1-alpha.1", + true, + }, + { + "ok-patch-version-prerelease-without-dot-separator", + "1.20.1-alpha1.2", + true, + }, + { + "version-ends-with-dot", + "1.20.1-alpha.1.", + false, + }, { "Empty", "",