information.py 893 B

123456789101112131415161718192021222324252627282930
  1. from __future__ import annotations
  2. from ..repositories.base import HacsRepository
  3. from .base import ActionValidationBase, ValidationException
  4. async def async_setup_validator(repository: HacsRepository) -> Validator:
  5. """Set up this validator."""
  6. return Validator(repository=repository)
  7. class Validator(ActionValidationBase):
  8. """Validate the repository."""
  9. more_info = "https://hacs.xyz/docs/publish/include#check-info"
  10. async def async_validate(self):
  11. """Validate the repository."""
  12. filenames = [x.filename.lower() for x in self.repository.tree]
  13. if "readme" in filenames:
  14. pass
  15. elif "readme.md" in filenames:
  16. pass
  17. elif "info" in filenames:
  18. pass
  19. elif "info.md" in filenames:
  20. pass
  21. else:
  22. raise ValidationException("The repository has no information file")