From 02d876d13a1ade63efb09b6be69880a81fb67c2c Mon Sep 17 00:00:00 2001 From: yxxhero Date: Thu, 14 Aug 2025 21:35:49 +0800 Subject: [PATCH] fix: validate and preprocess version in FindSemVerInfo Signed-off-by: yxxhero --- util.go | 9 ++++++++- util_test.go | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/util.go b/util.go index 96c0d7a..29d4e17 100644 --- a/util.go +++ b/util.go @@ -51,7 +51,14 @@ func indent(text, indent string) string { } func FindSemVerInfo(version string) (string, error) { - v := regexp.MustCompile(semVerRegex).FindString(version) + if version == "" { + return "", fmt.Errorf("version cannot be empty") + } + processedVersion := strings.TrimSpace(version) + if !strings.HasPrefix(processedVersion, "v") { + processedVersion = fmt.Sprintf("v%s", processedVersion) + } + v := regexp.MustCompile(semVerRegex).FindString(processedVersion) if v == "" { return "", fmt.Errorf("unable to find semver info in %s", version) diff --git a/util_test.go b/util_test.go index b1035f8..031f350 100644 --- a/util_test.go +++ b/util_test.go @@ -82,10 +82,10 @@ func TestFindSemVerInfo(t *testing.T) { wantErr: false, }, { - name: "semver must start with v", + name: "semver not start with v", version: "1.2.3", - want: "", - wantErr: true, + want: "v1.2.3", + wantErr: false, }, { name: "helm version info with WARNING message",