upgrade_strategy 757 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/python3
  2. import json
  3. import re
  4. import sys
  5. from catalog_update.upgrade_strategy import semantic_versioning
  6. RE_STABLE_VERSION = re.compile(r'\d+.\d+.\d+.\d+')
  7. def newer_mapping(image_tags):
  8. key = list(image_tags.keys())[0]
  9. version = semantic_versioning(sorted(
  10. [tag for tag in image_tags[key] if RE_STABLE_VERSION.fullmatch(tag) and tag.split('.')[2] != '0'],
  11. reverse=True
  12. ))
  13. if not version:
  14. return {}
  15. return {
  16. 'tags': {key: version},
  17. 'app_version': version,
  18. }
  19. if __name__ == '__main__':
  20. try:
  21. versions_json = json.loads(sys.stdin.read())
  22. except ValueError:
  23. raise ValueError('Invalid json specified')
  24. print(json.dumps(newer_mapping(versions_json)))