Skip to content

Commit ba5e539

Browse files
committed
fix: ignore invalid tags
Starting in 4.4.0 due to #1297 when an invalid tag is present an exception is thrown This commit ignores the invalid tags Follow up from #1375
1 parent 617b610 commit ba5e539

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

commitizen/providers/scm_provider.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from __future__ import annotations
22

3+
from packaging.version import InvalidVersion
4+
35
from commitizen.git import get_tags
46
from commitizen.providers.base_provider import VersionProvider
57
from commitizen.tags import TagRules
@@ -18,7 +20,13 @@ def get_version(self) -> str:
1820
rules = TagRules.from_settings(self.config.settings)
1921
tags = get_tags(reachable_only=True)
2022
version_tags = rules.get_version_tags(tags)
21-
versions = sorted(rules.extract_version(t) for t in version_tags)
23+
versions = []
24+
for t in version_tags:
25+
try:
26+
versions.append(rules.extract_version(t))
27+
except InvalidVersion:
28+
continue
29+
versions = sorted(versions)
2230
if not versions:
2331
return "0.0.0"
2432
return str(versions[-1])

tests/providers/test_scm_provider.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
("$version", "0.1.0", "0.1.0"),
2424
("$version", "v0.1.0", "0.1.0"),
2525
("$version", "v-0.1.0", "0.0.0"),
26+
("$version", "1.0.0.xxxx", "0.0.0"),
2627
# If tag_format is not None or $version, TAG_FORMAT_REGEXS are used, which are
2728
# much more lenient but require a v prefix.
2829
("v$version", "v0.1.0", "0.1.0"),

0 commit comments

Comments
 (0)