aboutsummaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-11-24 21:18:19 -0800
committerFuwn <[email protected]>2025-11-24 21:18:19 -0800
commit87265771a159028b61012ed3cd85d2e6c9571ec9 (patch)
treeddfd9480272c18442612134ae6712849f6f6c3d4 /internal
parent8720549ffd8f69832f5c0d7e6686bf115437f242 (diff)
downloadyae-87265771a159028b61012ed3cd85d2e6c9571ec9.tar.xz
yae-87265771a159028b61012ed3cd85d2e6c9571ec9.zip
feat(source): Support RegExp in tag_predicate
Diffstat (limited to 'internal')
-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