summaryrefslogtreecommitdiff
path: root/internal/cli
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cli')
-rw-r--r--internal/cli/release.go13
-rw-r--r--internal/cli/release_test.go2
2 files changed, 3 insertions, 12 deletions
diff --git a/internal/cli/release.go b/internal/cli/release.go
index da3f2e9..b5300c6 100644
--- a/internal/cli/release.go
+++ b/internal/cli/release.go
@@ -5,22 +5,13 @@ import (
"fmt"
"os"
"path/filepath"
- "regexp"
"strings"
"codeberg.org/snonux/gitsyncer/internal/config"
"codeberg.org/snonux/gitsyncer/internal/release"
+ "codeberg.org/snonux/gitsyncer/internal/version"
)
-// isVersionTag checks if a tag name is a version tag
-// Supports formats: vX.Y.Z, vX.Y, vX, X.Y.Z, X.Y, X
-func isVersionTag(tag string) bool {
- // Pattern matches version tags with optional 'v' prefix
- pattern := `^v?\d+(\.\d+)?(\.\d+)?$`
- matched, _ := regexp.MatchString(pattern, tag)
- return matched
-}
-
// HandleCheckReleases checks for version tags without releases and creates them with confirmation
func HandleCheckReleases(cfg *config.Config, flags *Flags) int {
// Get all repositories from work directory
@@ -392,7 +383,7 @@ func processUpdateReleasesForTarget(
fmt.Printf("\n Updating existing %s releases...\n", target.name)
for _, tag := range existingReleases {
- if !isVersionTag(tag) {
+ if !version.IsVersionTag(tag) {
continue
}
diff --git a/internal/cli/release_test.go b/internal/cli/release_test.go
index 5712530..12876ae 100644
--- a/internal/cli/release_test.go
+++ b/internal/cli/release_test.go
@@ -363,7 +363,7 @@ func TestProcessUpdateReleasesForTarget_UsesCachedAIAndSkipsNonVersionTags(t *te
name: "GitHub",
owner: "owner",
getReleases: func(_ string, _ string) ([]string, error) {
- return []string{"latest", "v1.0.0"}, nil
+ return []string{"latest", "1-beta", "v1.0.0"}, nil
},
updateRelease: func(_ string, _ string, tag string, notes string) error {
if notes != "cached ai notes" {