diff options
| author | Fuwn <[email protected]> | 2025-11-24 21:18:19 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-11-24 21:18:19 -0800 |
| commit | 87265771a159028b61012ed3cd85d2e6c9571ec9 (patch) | |
| tree | ddfd9480272c18442612134ae6712849f6f6c3d4 /internal | |
| parent | 8720549ffd8f69832f5c0d7e6686bf115437f242 (diff) | |
| download | yae-87265771a159028b61012ed3cd85d2e6c9571ec9.tar.xz yae-87265771a159028b61012ed3cd85d2e6c9571ec9.zip | |
feat(source): Support RegExp in tag_predicate
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/yae/source.go | 9 |
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 |