MiddleArch/utils/git.py

25 lines
527 B
Python
Raw Normal View History

2021-06-08 23:08:11 +02:00
import logging
import os
import re
def get_tags_from_git(remote):
regex = re.compile("^refs/tags/v?(\d+\.\d+\.\d+)$")
def extract_tag(tag):
m = regex.search(tag)
if m:
return m.groups()[0]
return ""
raw_tags = os.popen(f"git ls-remote --tags {remote}").read().split()
tags = sorted(
list(
filter(''.__ne__,
map(extract_tag, raw_tags)
),
)
)
logging.debug(f"{remote}: {', '.join(tags)}")
return tags[-1]