aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-11-25 05:18:19 +0000
committerFuwn <[email protected]>2025-11-25 05:18:19 +0000
commita09af06146107bd25f0a07fe30f63265f775fcc5 (patch)
treeddfd9480272c18442612134ae6712849f6f6c3d4
parentfix(source): Remove redundant rehash condition (diff)
downloadyae-a09af06146107bd25f0a07fe30f63265f775fcc5.tar.xz
yae-a09af06146107bd25f0a07fe30f63265f775fcc5.zip
feat(source): Support RegExp in tag_predicate
-rw-r--r--internal/yae/source.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/internal/yae/source.go b/internal/yae/source.go
index 6b29732..f6fd38d 100644
--- a/internal/yae/source.go
+++ b/internal/yae/source.go
@@ -3,6 +3,7 @@ package yae
import (
"fmt"
"net/url"
+ "regexp"
"strings"
"github.com/charmbracelet/log"
@@ -127,8 +128,14 @@ func (source *Source) fetchLatestGitTag() (string, error) {
if source.TagPredicate == "" {
latest = refs[len(refs)-2]
} else {
+ pattern, err := regexp.Compile(source.TagPredicate)
+
+ if err != nil {
+ return "", fmt.Errorf("invalid tag_predicate regex pattern: %w", err)
+ }
+
for i := len(refs) - 2; i >= 0; i-- {
- if strings.Contains(refs[i], source.TagPredicate) {
+ if pattern.MatchString(refs[i]) {
latest = refs[i]
break