From 3a4e423340da128836a4c9a36cedf3c37a94acb2 Mon Sep 17 00:00:00 2001 From: Anton Troshin Date: Fri, 22 Nov 2024 14:23:23 -0600 Subject: [PATCH] simplify condition to skip prerelease and versions with metadata print warning on error and non-semver version tag Signed-off-by: Anton Troshin --- pkg/version/version.go | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/pkg/version/version.go b/pkg/version/version.go index ec1503ef4..22aa2e75a 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -119,22 +119,18 @@ func GetLatestReleaseGithub(githubURL string) (string, error) { latestVersion := defaultVersion for _, release := range githubRepoReleases { - if !strings.Contains(release.TagName, "-rc") { - cur, err := version.NewVersion(strings.TrimPrefix(release.TagName, "v")) - if err != nil { - if strings.HasPrefix(err.Error(), "Malformed version") { - continue - } - return "", err - } - // just a safety check to make sure we don't get a nil version. - // all errors should be handled above. - if cur == nil { - continue - } - if cur.GreaterThan(latestVersion) { - latestVersion = cur - } + cur, err := version.NewVersion(strings.TrimPrefix(release.TagName, "v")) + if err != nil || cur == nil { + print.WarningStatusEvent(os.Stdout, "Malformed version %s, skipping", release.TagName) + continue + } + // Prerelease versions and versions with metadata are skipped. + if cur.Prerelease() != "" || cur.Metadata() != "" { + continue + } + + if cur.GreaterThan(latestVersion) { + latestVersion = cur } }