diff --git a/updatebot.py b/updatebot.py index 589b5f9..953923c 100644 --- a/updatebot.py +++ b/updatebot.py @@ -79,6 +79,7 @@ class DockerHubSource(BaseSource): kind: Literal['docker'] namespace: str repository: str + version_re: str = r'^(?P[0-9]+(\.[0-9]+)*(-[0-9]+)?)$' def get_latest_version(self) -> str: session = _get_session() @@ -89,10 +90,18 @@ class DockerHubSource(BaseSource): r = session.get(url) data = r.json() versions = [] + regex = re.compile(self.version_re) for result in data['results']: - if result['name'] == 'latest': + m = regex.match(result['name']) + if not m: + log.debug( + 'Skipping tag %s: does not match regex %s', + result['name'], + self.version_re, + ) continue - versions.append((result['last_updated'], result['name'])) + version = m.groupdict()['version'] + versions.append((result['last_updated'], version)) versions.sort() return versions[-1][-1]