async def METHOD_NAME(
    hass: HomeAssistant,
    *,
    config_entry: ConfigEntry | None = None,
    config: dict[str, Any] | None = None,
) -> bool:
    """Initialize the integration."""
    hass.data[DOMAIN] = ulm = UlmBase()
    ulm.enable_ulm()
    if config is not None:
        if DOMAIN not in config:
            return True
        if ulm.configuration.config_type == ConfigurationType.CONFIG_ENTRY:
            return True
        ulm.configuration.update_from_dict(
            {
                "config_type": ConfigurationType.YAML,
                **config[DOMAIN],
                "config": config[DOMAIN],
            }
        )
    if config_entry is not None:
        if config_entry.source == SOURCE_IMPORT:
            # not sure about this one
            hass.async_create_task(
                hass.config_entries.async_remove(config_entry.entry_id)
            )
            return False
        ulm.configuration.update_from_dict(
            {
                "config_entry": config_entry,
                "config_type": ConfigurationType.CONFIG_ENTRY,
                **config_entry.data,
                **config_entry.options,
            }
        )
    integration = await async_get_integration(hass, DOMAIN)
    clientsession = async_get_clientsession(hass)
    ulm.integration = integration
    ulm.version = integration.version
    ulm.session = clientsession
    ulm.hass = hass
    ulm.system.running = True
    ulm.githubapi = GitHubAPI(
        token=ulm.configuration.token,
        session=clientsession,
        **{"client_name": "ULM"},
    )
    async def async_startup():
        """ULM Startup tasks."""
        if (
            ulm.configuration.community_cards_enabled
            and ulm.configuration.token is None
        ):
            ulm.disable_ulm(UlmDisabledReason.INVALID_TOKEN)
            ulm.log.error(
                "Github token is not set up yet, please reconfigure the integration."
            )
            return False
        if ulm.configuration.community_cards_enabled:
            await ulm.fetch_cards()
            await ulm.configure_community_cards()
        if (
            not await ulm.configure_ulm()
            or not await ulm.configure_plugins()
            or not await ulm.configure_dashboard()
        ):
            return False
        ulm.enable_ulm()
        return not ulm.system.disabled
    try:
        startup_result = await async_startup()
    except AIOGitHubAPIException:
        startup_result = False
    if not startup_result:
        return False
    ulm.enable_ulm()
    return True