brands.py 974 B

1234567891011121314151617181920212223242526272829303132
  1. from __future__ import annotations
  2. from custom_components.hacs.enums import HacsCategory
  3. from ..repositories.base import HacsRepository
  4. from .base import ActionValidationBase, ValidationException
  5. URL = "https://brands.home-assistant.io/domains.json"
  6. async def async_setup_validator(repository: HacsRepository) -> Validator:
  7. """Set up this validator."""
  8. return Validator(repository=repository)
  9. class Validator(ActionValidationBase):
  10. """Validate the repository."""
  11. more_info = "https://hacs.xyz/docs/publish/include#check-brands"
  12. categories = [HacsCategory.INTEGRATION]
  13. async def async_validate(self):
  14. """Validate the repository."""
  15. response = await self.hacs.session.get(URL)
  16. content = await response.json()
  17. if self.repository.data.domain not in content["custom"]:
  18. raise ValidationException(
  19. "The repository has not been added as a custom domain to the brands repo"
  20. )