39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
"""Starting setup task: load HACS repository."""
|
|
from custom_components.hacs.const import INTEGRATION_VERSION
|
|
from custom_components.hacs.helpers.classes.exceptions import HacsException
|
|
from custom_components.hacs.helpers.functions.information import get_repository
|
|
from custom_components.hacs.helpers.functions.register_repository import (
|
|
register_repository,
|
|
)
|
|
from custom_components.hacs.share import get_hacs
|
|
|
|
from ...enums import HacsSetupTask
|
|
|
|
|
|
async def async_load_hacs_repository():
|
|
"""Load HACS repositroy."""
|
|
hacs = get_hacs()
|
|
hacs.log.info("Setup task %s", HacsSetupTask.HACS_REPO)
|
|
|
|
try:
|
|
repository = hacs.get_by_name("hacs/integration")
|
|
if repository is None:
|
|
await register_repository("hacs/integration", "integration")
|
|
repository = hacs.get_by_name("hacs/integration")
|
|
if repository is None:
|
|
raise HacsException("Unknown error")
|
|
repository.data.installed = True
|
|
repository.data.installed_version = INTEGRATION_VERSION
|
|
repository.data.new = False
|
|
hacs.repo = repository.repository_object
|
|
hacs.data_repo = await get_repository(
|
|
hacs.session, hacs.configuration.token, "hacs/default"
|
|
)
|
|
except HacsException as exception:
|
|
if "403" in f"{exception}":
|
|
hacs.log.critical("GitHub API is ratelimited, or the token is wrong.")
|
|
else:
|
|
hacs.log.critical(f"[{exception}] - Could not load HACS!")
|
|
return False
|
|
return True
|