gitextract_ec9nfn8q/ ├── .codeclimate.yml ├── .codecov.yml ├── .coveragerc ├── .devcontainer.json ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── a_integration.yml │ │ ├── b_frontend.yml │ │ ├── c_bot.yml │ │ ├── config.yml │ │ ├── d_documentation.yml │ │ ├── e_action.yml │ │ ├── f_addon.yml │ │ └── removal.yml │ ├── dependabot.yml │ ├── pre-commit-config.yaml │ ├── release.yml │ └── workflows/ │ ├── action-container.yml │ ├── generate-hacs-data.yml │ ├── lint.yaml │ ├── lock.yml │ ├── publish.yml │ ├── pull_requests_labels.yml │ ├── pytest.yml │ ├── stale.yml │ └── validate.yml ├── .gitignore ├── .pylintrc ├── LICENSE ├── README.md ├── action/ │ ├── Dockerfile │ └── action.py ├── constraints.txt ├── custom_components/ │ └── hacs/ │ ├── __init__.py │ ├── base.py │ ├── config_flow.py │ ├── const.py │ ├── coordinator.py │ ├── data_client.py │ ├── diagnostics.py │ ├── entity.py │ ├── enums.py │ ├── exceptions.py │ ├── frontend.py │ ├── icons.json │ ├── iconset.js │ ├── manifest.json │ ├── repairs.py │ ├── repositories/ │ │ ├── __init__.py │ │ ├── appdaemon.py │ │ ├── base.py │ │ ├── integration.py │ │ ├── plugin.py │ │ ├── python_script.py │ │ ├── template.py │ │ └── theme.py │ ├── switch.py │ ├── system_health.py │ ├── types.py │ ├── update.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── backup.py │ │ ├── configuration_schema.py │ │ ├── data.py │ │ ├── decode.py │ │ ├── decorator.py │ │ ├── file_system.py │ │ ├── filters.py │ │ ├── github_graphql_query.py │ │ ├── json.py │ │ ├── logger.py │ │ ├── path.py │ │ ├── queue_manager.py │ │ ├── regex.py │ │ ├── store.py │ │ ├── url.py │ │ ├── validate.py │ │ ├── version.py │ │ └── workarounds.py │ ├── validate/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── archived.py │ │ ├── base.py │ │ ├── brands.py │ │ ├── description.py │ │ ├── hacsjson.py │ │ ├── images.py │ │ ├── information.py │ │ ├── integration_manifest.py │ │ ├── issues.py │ │ ├── manager.py │ │ └── topics.py │ └── websocket/ │ ├── __init__.py │ ├── critical.py │ ├── repositories.py │ └── repository.py ├── hacs.json ├── info.md ├── pyproject.toml ├── requirements_action.txt ├── requirements_base.txt ├── requirements_core_min.txt ├── requirements_generate_data.txt ├── requirements_lint.txt ├── requirements_test.txt ├── scripts/ │ ├── __init__.py │ ├── clear_storage │ ├── coverage │ ├── data/ │ │ ├── __init__.py │ │ ├── common.py │ │ ├── generate_category_data.py │ │ └── validate_category_data.py │ ├── develop │ ├── install/ │ │ ├── core │ │ ├── core_dev │ │ ├── frontend │ │ ├── pip_packages │ │ └── uv_packages │ ├── lgtm.js │ ├── lint │ ├── setup │ ├── snapshot-update │ ├── test │ └── update/ │ ├── __init__.py │ ├── default_repositories.py │ └── manifest.py └── tests/ ├── __init__.py ├── action/ │ └── test_hacs_action_integration.py ├── common.py ├── conftest.py ├── fixtures/ │ ├── proxy/ │ │ ├── api.github.com/ │ │ │ ├── rate_limit.json │ │ │ └── repos/ │ │ │ ├── hacs/ │ │ │ │ ├── default/ │ │ │ │ │ └── contents/ │ │ │ │ │ ├── appdaemon.json │ │ │ │ │ ├── integration.json │ │ │ │ │ ├── plugin.json │ │ │ │ │ ├── python_script.json │ │ │ │ │ ├── template.json │ │ │ │ │ └── theme.json │ │ │ │ ├── integration/ │ │ │ │ │ ├── contents/ │ │ │ │ │ │ ├── custom_components/ │ │ │ │ │ │ │ └── hacs/ │ │ │ │ │ │ │ └── manifest.json │ │ │ │ │ │ └── hacs.json │ │ │ │ │ └── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ └── main.json │ │ │ │ └── integration.json │ │ │ └── hacs-test-org/ │ │ │ ├── addon-basic/ │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ ├── addon-basic.json │ │ │ ├── appdaemon-basic/ │ │ │ │ ├── branches/ │ │ │ │ │ └── main.json │ │ │ │ ├── contents/ │ │ │ │ │ ├── apps/ │ │ │ │ │ │ └── example.json │ │ │ │ │ ├── apps.json │ │ │ │ │ └── hacs.json │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ ├── 1.0.0.json │ │ │ │ │ ├── 2.0.0.json │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ ├── appdaemon-basic.json │ │ │ ├── integration-basic/ │ │ │ │ ├── branches/ │ │ │ │ │ └── main.json │ │ │ │ ├── contents/ │ │ │ │ │ ├── custom_components/ │ │ │ │ │ │ └── example/ │ │ │ │ │ │ └── manifest.json │ │ │ │ │ └── hacs.json │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ ├── 1.0.0.json │ │ │ │ │ ├── 2.0.0.json │ │ │ │ │ └── main.json │ │ │ │ ├── releases/ │ │ │ │ │ └── latest.json │ │ │ │ └── releases.json │ │ │ ├── integration-basic-custom/ │ │ │ │ ├── branches/ │ │ │ │ │ └── main.json │ │ │ │ ├── contents/ │ │ │ │ │ ├── custom_components/ │ │ │ │ │ │ └── example/ │ │ │ │ │ │ └── manifest.json │ │ │ │ │ └── hacs.json │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ ├── 1.0.0.json │ │ │ │ │ ├── 2.0.0.json │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ ├── integration-basic-custom.json │ │ │ ├── integration-basic.json │ │ │ ├── integration-invalid/ │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ ├── integration-invalid.json │ │ │ ├── plugin-basic/ │ │ │ │ ├── branches/ │ │ │ │ │ └── main.json │ │ │ │ ├── contents/ │ │ │ │ │ └── hacs.json │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ ├── 1.0.0.json │ │ │ │ │ ├── 2.0.0.json │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ ├── plugin-basic.json │ │ │ ├── plugin-custom-dist/ │ │ │ │ ├── branches/ │ │ │ │ │ └── main.json │ │ │ │ ├── contents/ │ │ │ │ │ └── hacs.json │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ ├── 1.0.0.json │ │ │ │ │ ├── 2.0.0.json │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ ├── plugin-custom-dist.json │ │ │ ├── python_script-basic/ │ │ │ │ ├── branches/ │ │ │ │ │ └── main.json │ │ │ │ ├── contents/ │ │ │ │ │ └── hacs.json │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ ├── 1.0.0.json │ │ │ │ │ ├── 2.0.0.json │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ ├── python_script-basic.json │ │ │ ├── template-basic/ │ │ │ │ ├── branches/ │ │ │ │ │ └── main.json │ │ │ │ ├── contents/ │ │ │ │ │ └── hacs.json │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ ├── 1.0.0.json │ │ │ │ │ ├── 2.0.0.json │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ ├── template-basic.json │ │ │ ├── theme-basic/ │ │ │ │ ├── branches/ │ │ │ │ │ └── main.json │ │ │ │ ├── contents/ │ │ │ │ │ └── hacs.json │ │ │ │ ├── git/ │ │ │ │ │ └── trees/ │ │ │ │ │ ├── 1.0.0.json │ │ │ │ │ ├── 2.0.0.json │ │ │ │ │ └── main.json │ │ │ │ └── releases.json │ │ │ └── theme-basic.json │ │ ├── brands.home-assistant.io/ │ │ │ └── domains.json │ │ ├── data-v2.hacs.xyz/ │ │ │ ├── appdaemon/ │ │ │ │ ├── data.json │ │ │ │ └── repositories.json │ │ │ ├── critical/ │ │ │ │ └── data.json │ │ │ ├── integration/ │ │ │ │ ├── data.json │ │ │ │ └── repositories.json │ │ │ ├── netdaemon/ │ │ │ │ ├── data.json │ │ │ │ └── repositories.json │ │ │ ├── plugin/ │ │ │ │ ├── data.json │ │ │ │ └── repositories.json │ │ │ ├── python_script/ │ │ │ │ ├── data.json │ │ │ │ └── repositories.json │ │ │ ├── removed/ │ │ │ │ ├── data.json │ │ │ │ └── repositories.json │ │ │ ├── template/ │ │ │ │ ├── data.json │ │ │ │ └── repositories.json │ │ │ └── theme/ │ │ │ ├── data.json │ │ │ └── repositories.json │ │ ├── github.com/ │ │ │ └── hacs-test-org/ │ │ │ ├── appdaemon-basic/ │ │ │ │ └── _base/ │ │ │ │ ├── README.md │ │ │ │ └── apps/ │ │ │ │ └── example/ │ │ │ │ └── __init__.py │ │ │ └── integration-basic/ │ │ │ └── _base/ │ │ │ ├── README.md │ │ │ └── custom_components/ │ │ │ └── example/ │ │ │ └── manifest.json │ │ └── raw.githubusercontent.com/ │ │ └── hacs-test-org/ │ │ ├── appdaemon-basic/ │ │ │ ├── 1.0.0/ │ │ │ │ ├── README.md │ │ │ │ └── hacs.json │ │ │ └── 2.0.0/ │ │ │ ├── README.md │ │ │ └── hacs.json │ │ ├── integration-basic/ │ │ │ ├── 1.0.0/ │ │ │ │ ├── README.md │ │ │ │ └── hacs.json │ │ │ ├── 2.0.0/ │ │ │ │ ├── README.md │ │ │ │ └── hacs.json │ │ │ └── main/ │ │ │ └── hacs.json │ │ ├── plugin-basic/ │ │ │ ├── 1.0.0/ │ │ │ │ ├── hacs.json │ │ │ │ └── plugin-basic.js │ │ │ └── 2.0.0/ │ │ │ ├── hacs.json │ │ │ └── plugin-basic.js │ │ ├── python_script-basic/ │ │ │ ├── 1.0.0/ │ │ │ │ ├── README.md │ │ │ │ ├── hacs.json │ │ │ │ └── python_scripts/ │ │ │ │ └── example.py │ │ │ └── 2.0.0/ │ │ │ ├── README.md │ │ │ ├── hacs.json │ │ │ └── python_scripts/ │ │ │ └── example.py │ │ ├── template-basic/ │ │ │ ├── 1.0.0/ │ │ │ │ ├── example.jinja │ │ │ │ └── hacs.json │ │ │ └── 2.0.0/ │ │ │ ├── example.jinja │ │ │ └── hacs.json │ │ └── theme-basic/ │ │ ├── 1.0.0/ │ │ │ ├── hacs.json │ │ │ └── themes/ │ │ │ └── example.yaml │ │ └── 2.0.0/ │ │ ├── hacs.json │ │ └── themes/ │ │ └── example.yaml │ ├── repository_data.json │ ├── stored_repositories.json │ ├── v2-appdaemon-data.json │ ├── v2-critical-data.json │ ├── v2-integration-data.json │ ├── v2-plugin-data.json │ ├── v2-python_script-data.json │ ├── v2-removed-data.json │ ├── v2-template-data.json │ └── v2-theme-data.json ├── hacsbase/ │ ├── test_backup.py │ ├── test_configuration.py │ ├── test_hacs.py │ └── test_hacsbase_data.py ├── helpers/ │ ├── classes/ │ │ ├── test_repository_data.py │ │ └── test_validate_class.py │ ├── download/ │ │ ├── test_gather_files_to_download.py │ │ └── test_should_try_releases.py │ ├── filters/ │ │ ├── test_filter_content_return_one_of_type.py │ │ └── test_get_first_directory_in_directory.py │ └── functions/ │ └── test_extract_repository_from_url.py ├── homeassistantfixtures/ │ ├── __init__.py │ ├── common.py │ ├── dev.py │ └── min.py ├── integration/ │ └── test_integration_setup.py ├── patch_time.py ├── repositories/ │ ├── helpers/ │ │ ├── __init__.py │ │ └── test_properties.py │ ├── test_can_install.py │ ├── test_display_status.py │ ├── test_download_repository.py │ ├── test_get_documentation.py │ ├── test_get_hacs_json.py │ ├── test_get_hacs_json_raw.py │ ├── test_get_reposiotry_releases.py │ ├── test_hacs_manifest.py │ ├── test_plugin_repository.py │ ├── test_register_repository.py │ ├── test_remove_repository.py │ ├── test_removed_repository.py │ └── test_update_repository.py ├── ruff.toml ├── scripts/ │ └── data/ │ └── test_generate_category_data.py ├── snapshots/ │ ├── action/ │ │ └── test_hacs_action_integration/ │ │ ├── bad_documentation.log │ │ ├── bad_issue_tracker.log │ │ ├── no_releases.log │ │ ├── releases_without_assets.log │ │ └── valid_manifest.log │ ├── api-usage/ │ │ └── tests/ │ │ ├── action/ │ │ │ ├── test_hacs_action_integrationtest-hacs-action-integration-bad-documentation.json │ │ │ ├── test_hacs_action_integrationtest-hacs-action-integration-bad-issue-tracker.json │ │ │ ├── test_hacs_action_integrationtest-hacs-action-integration-no-releases.json │ │ │ ├── test_hacs_action_integrationtest-hacs-action-integration-releases-without-assets.json │ │ │ └── test_hacs_action_integrationtest-hacs-action-integration-valid-manifest.json │ │ ├── hacsbase/ │ │ │ ├── test_backuptest-directory.json │ │ │ ├── test_backuptest-file.json │ │ │ ├── test_backuptest-muilti.json │ │ │ ├── test_hacsbase_datatest-hacs-data-async-write1.json │ │ │ ├── test_hacsbase_datatest-hacs-data-async-write2.json │ │ │ ├── test_hacsbase_datatest-hacs-data-restore-write-not-new.json │ │ │ ├── test_hacstest-add-remove-repository.json │ │ │ └── test_hacstest-hacs.json │ │ ├── helpers/ │ │ │ └── download/ │ │ │ ├── test_gather_files_to_downloadtest-gather-appdaemon-files-base.json │ │ │ ├── test_gather_files_to_downloadtest-gather-appdaemon-files-with-subdir.json │ │ │ ├── test_gather_files_to_downloadtest-gather-content-in-root-theme.json │ │ │ ├── test_gather_files_to_downloadtest-gather-files-to-download.json │ │ │ ├── test_gather_files_to_downloadtest-gather-plugin-different-card-name.json │ │ │ ├── test_gather_files_to_downloadtest-gather-plugin-files-from-dist.json │ │ │ ├── test_gather_files_to_downloadtest-gather-plugin-files-from-release-multiple.json │ │ │ ├── test_gather_files_to_downloadtest-gather-plugin-files-from-release.json │ │ │ ├── test_gather_files_to_downloadtest-gather-plugin-files-from-root.json │ │ │ ├── test_gather_files_to_downloadtest-gather-plugin-multiple-files-in-root.json │ │ │ ├── test_gather_files_to_downloadtest-gather-plugin-multiple-plugin-files-from-dist.json │ │ │ ├── test_gather_files_to_downloadtest-gather-zip-release.json │ │ │ ├── test_gather_files_to_downloadtest-single-file-repo.json │ │ │ ├── test_should_try_releasestest-base.json │ │ │ ├── test_should_try_releasestest-category-is-wrong.json │ │ │ ├── test_should_try_releasestest-no-releases.json │ │ │ ├── test_should_try_releasestest-ref-is-default.json │ │ │ └── test_should_try_releasestest-zip-release.json │ │ ├── integration/ │ │ │ └── test_integration_setuptest-integration-setup.json │ │ ├── repositories/ │ │ │ ├── helpers/ │ │ │ │ ├── test_propertiestest-repository-helpers-properties-can-be-installed.json │ │ │ │ └── test_propertiestest-repository-helpers-properties-pending-update.json │ │ │ ├── test_can_installtest-hacs-can-install.json │ │ │ ├── test_display_statustest-display-status.json │ │ │ ├── test_download_repositorytest-download-repository-hacs-test-org-appdaemon-basic.json │ │ │ ├── test_download_repositorytest-download-repository-hacs-test-org-integration-basic.json │ │ │ ├── test_download_repositorytest-download-repository-hacs-test-org-plugin-basic.json │ │ │ ├── test_download_repositorytest-download-repository-hacs-test-org-python-script-basic.json │ │ │ ├── test_download_repositorytest-download-repository-hacs-test-org-template-basic.json │ │ │ ├── test_download_repositorytest-download-repository-hacs-test-org-theme-basic.json │ │ │ ├── test_get_documentationtest-repository-get-documentation-data0.json │ │ │ ├── test_get_documentationtest-repository-get-documentation-data1.json │ │ │ ├── test_get_documentationtest-repository-get-documentation-data2.json │ │ │ ├── test_get_documentationtest-repository-get-documentation-data3.json │ │ │ ├── test_get_hacs_json_rawtest-get-hacs-json-raw-1-0-0-expected0.json │ │ │ ├── test_get_hacs_json_rawtest-get-hacs-json-raw-99-99-99-none.json │ │ │ ├── test_get_hacs_json_rawtest-get-hacs-json-raw-with-exception.json │ │ │ ├── test_get_hacs_jsontest-get-hacs-json-with-exception.json │ │ │ ├── test_get_hacs_jsontest-validate-repository-1-0-0-integration-basic-1-0-0.json │ │ │ ├── test_get_hacs_jsontest-validate-repository-99-99-99-none.json │ │ │ ├── test_get_reposiotry_releasestest-get-reposiotry-releases-hacs-test-org-appdaemon-basic.json │ │ │ ├── test_get_reposiotry_releasestest-get-reposiotry-releases-hacs-test-org-integration-basic.json │ │ │ ├── test_get_reposiotry_releasestest-get-reposiotry-releases-hacs-test-org-plugin-basic.json │ │ │ ├── test_get_reposiotry_releasestest-get-reposiotry-releases-hacs-test-org-python-script-basic.json │ │ │ ├── test_get_reposiotry_releasestest-get-reposiotry-releases-hacs-test-org-template-basic.json │ │ │ ├── test_get_reposiotry_releasestest-get-reposiotry-releases-hacs-test-org-theme-basic.json │ │ │ ├── test_plugin_repositorytest-add-dashboard-resource-with-invalid-file-name.json │ │ │ ├── test_plugin_repositorytest-add-dashboard-resource.json │ │ │ ├── test_plugin_repositorytest-dashboard-hacstag-1-0-0-none-none-100.json │ │ │ ├── test_plugin_repositorytest-dashboard-hacstag-1-7-dev09-r2-none-none-17092.json │ │ │ ├── test_plugin_repositorytest-dashboard-hacstag-none-2-0-1-none-201.json │ │ │ ├── test_plugin_repositorytest-dashboard-hacstag-none-none-3-4-2-342.json │ │ │ ├── test_plugin_repositorytest-dashboard-hacstag-none-none-none.json │ │ │ ├── test_plugin_repositorytest-dashboard-namespace-hacs-test-org-awesome-plugin-hacsfiles-awesome-plugin.json │ │ │ ├── test_plugin_repositorytest-dashboard-namespace-hacs-test-org-plugin-advanced-hacsfiles-plugin-advanced.json │ │ │ ├── test_plugin_repositorytest-dashboard-namespace-hacs-test-org-plugin-basic-hacsfiles-plugin-basic.json │ │ │ ├── test_plugin_repositorytest-dashboard-url.json │ │ │ ├── test_plugin_repositorytest-get-resource-handler-no-hass-data.json │ │ │ ├── test_plugin_repositorytest-get-resource-handler-no-lovelace-data.json │ │ │ ├── test_plugin_repositorytest-get-resource-handler-no-lovelace-resources.json │ │ │ ├── test_plugin_repositorytest-get-resource-handler-no-store.json │ │ │ ├── test_plugin_repositorytest-get-resource-handler-none-store.json │ │ │ ├── test_plugin_repositorytest-get-resource-handler-wrong-key.json │ │ │ ├── test_plugin_repositorytest-get-resource-handler-wrong-version.json │ │ │ ├── test_plugin_repositorytest-get-resource-handler.json │ │ │ ├── test_plugin_repositorytest-remove-dashboard-resource.json │ │ │ ├── test_plugin_repositorytest-update-dashboard-resource.json │ │ │ ├── test_register_repositorytest-register-repository-failures-hacs-test-org-addon-basic-the-repository-does-not-seem-to-be-a-integration-but-an-add-on-repository-hacs-does-not-manage-add-ons.json │ │ │ ├── test_register_repositorytest-register-repository-failures-hacs-test-org-integration-invalid-integration-hacs-test-org-integration-invalid-repository-structure-for-main-is-not-compliant.json │ │ │ ├── test_register_repositorytest-register-repository-failures-hassio-addons-example-the-repository-does-not-seem-to-be-a-integration-but-an-add-on-repository-hacs-does-not-manage-add-ons.json │ │ │ ├── test_register_repositorytest-register-repository-failures-home-assistant-addons-the-repository-does-not-seem-to-be-a-integration-but-an-add-on-repository-hacs-does-not-manage-add-ons.json │ │ │ ├── test_register_repositorytest-register-repository-failures-home-assistant-core-you-can-not-add-homeassistant-core-to-use-core-integrations-check-the-home-assistant-documentation-for-how-to-add-them.json │ │ │ ├── test_register_repositorytest-register-repository-hacs-test-org-integration-basic-custom-integration.json │ │ │ ├── test_register_repositorytest-register-repository-hacs-test-org-plugin-custom-dist-plugin.json │ │ │ ├── test_remove_repositorytest-remove-repository-hacs-test-org-appdaemon-basic.json │ │ │ ├── test_remove_repositorytest-remove-repository-hacs-test-org-integration-basic.json │ │ │ ├── test_remove_repositorytest-remove-repository-hacs-test-org-plugin-basic.json │ │ │ ├── test_remove_repositorytest-remove-repository-hacs-test-org-python-script-basic.json │ │ │ ├── test_remove_repositorytest-remove-repository-hacs-test-org-template-basic.json │ │ │ ├── test_remove_repositorytest-remove-repository-hacs-test-org-theme-basic.json │ │ │ ├── test_update_repositorytest-update-repository-entity-download-failure.json │ │ │ ├── test_update_repositorytest-update-repository-entity-hacs-test-org-appdaemon-basic.json │ │ │ ├── test_update_repositorytest-update-repository-entity-hacs-test-org-integration-basic.json │ │ │ ├── test_update_repositorytest-update-repository-entity-hacs-test-org-plugin-basic.json │ │ │ ├── test_update_repositorytest-update-repository-entity-hacs-test-org-python-script-basic.json │ │ │ ├── test_update_repositorytest-update-repository-entity-hacs-test-org-template-basic.json │ │ │ ├── test_update_repositorytest-update-repository-entity-hacs-test-org-theme-basic.json │ │ │ ├── test_update_repositorytest-update-repository-entity-no-manifest.json │ │ │ ├── test_update_repositorytest-update-repository-entity-no-update.json │ │ │ ├── test_update_repositorytest-update-repository-entity-old-core-version.json │ │ │ ├── test_update_repositorytest-update-repository-entity-old-hacs-version.json │ │ │ ├── test_update_repositorytest-update-repository-entity-same-provided-version.json │ │ │ ├── test_update_repositorytest-update-repository-websocket-hacs-test-org-appdaemon-basic.json │ │ │ ├── test_update_repositorytest-update-repository-websocket-hacs-test-org-integration-basic.json │ │ │ ├── test_update_repositorytest-update-repository-websocket-hacs-test-org-plugin-basic.json │ │ │ ├── test_update_repositorytest-update-repository-websocket-hacs-test-org-python-script-basic.json │ │ │ ├── test_update_repositorytest-update-repository-websocket-hacs-test-org-template-basic.json │ │ │ └── test_update_repositorytest-update-repository-websocket-hacs-test-org-theme-basic.json │ │ ├── scripts/ │ │ │ └── data/ │ │ │ ├── test_generate_category_datatest-generate-category-data-error-status-release-304-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-error-status-release-404-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-errors-release-cancellederror-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-errors-release-error2-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-errors-release-timeouterror-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-hacs-test-org-appdaemon-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-hacs-test-org-plugin-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-hacs-test-org-python-script-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-hacs-test-org-template-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-hacs-test-org-theme-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-single-repository-hacs-test-org-appdaemon-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-single-repository-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-single-repository-hacs-test-org-plugin-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-single-repository-hacs-test-org-python-script-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-single-repository-hacs-test-org-template-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-single-repository-hacs-test-org-theme-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-with-30plus-prereleases-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-with-prior-content-hacs-test-org-appdaemon-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-with-prior-content-hacs-test-org-integration-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-with-prior-content-hacs-test-org-plugin-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-with-prior-content-hacs-test-org-python-script-basic.json │ │ │ ├── test_generate_category_datatest-generate-category-data-with-prior-content-hacs-test-org-template-basic.json │ │ │ └── test_generate_category_datatest-generate-category-data-with-prior-content-hacs-test-org-theme-basic.json │ │ ├── test_config_flowtest-flow-with-activation-failure.json │ │ ├── test_config_flowtest-flow-with-registration-failure.json │ │ ├── test_config_flowtest-flow-with-remove-while-activating.json │ │ ├── test_config_flowtest-full-user-flow-implementation.json │ │ ├── test_config_flowtest-options-flow.json │ │ ├── test_data_clienttest-basic-functionality-data-hacs-test-org-appdaemon-basic.json │ │ ├── test_data_clienttest-basic-functionality-data-hacs-test-org-integration-basic.json │ │ ├── test_data_clienttest-basic-functionality-data-hacs-test-org-plugin-basic.json │ │ ├── test_data_clienttest-basic-functionality-data-hacs-test-org-python-script-basic.json │ │ ├── test_data_clienttest-basic-functionality-data-hacs-test-org-template-basic.json │ │ ├── test_data_clienttest-basic-functionality-data-hacs-test-org-theme-basic.json │ │ ├── test_data_clienttest-basic-functionality-data-validate-appdaemon-data0.json │ │ ├── test_data_clienttest-basic-functionality-data-validate-critical-data6.json │ │ ├── test_data_clienttest-basic-functionality-data-validate-integration-data1.json │ │ ├── test_data_clienttest-basic-functionality-data-validate-plugin-data2.json │ │ ├── test_data_clienttest-basic-functionality-data-validate-python-script-data3.json │ │ ├── test_data_clienttest-basic-functionality-data-validate-removed-data7.json │ │ ├── test_data_clienttest-basic-functionality-data-validate-template-data4.json │ │ ├── test_data_clienttest-basic-functionality-data-validate-theme-data5.json │ │ ├── test_data_clienttest-basic-functionality-repositories-hacs-test-org-appdaemon-basic.json │ │ ├── test_data_clienttest-basic-functionality-repositories-hacs-test-org-integration-basic.json │ │ ├── test_data_clienttest-basic-functionality-repositories-hacs-test-org-plugin-basic.json │ │ ├── test_data_clienttest-basic-functionality-repositories-hacs-test-org-python-script-basic.json │ │ ├── test_data_clienttest-basic-functionality-repositories-hacs-test-org-template-basic.json │ │ ├── test_data_clienttest-basic-functionality-repositories-hacs-test-org-theme-basic.json │ │ ├── test_data_clienttest-discard-invalid-repo-data-appdaemon-data0.json │ │ ├── test_data_clienttest-discard-invalid-repo-data-integration-data1.json │ │ ├── test_data_clienttest-discard-invalid-repo-data-plugin-data2.json │ │ ├── test_data_clienttest-discard-invalid-repo-data-python-script-data3.json │ │ ├── test_data_clienttest-discard-invalid-repo-data-template-data4.json │ │ ├── test_data_clienttest-discard-invalid-repo-data-theme-data5.json │ │ ├── test_data_clienttest-exception-handling-exception-error-fetching-data-from-hacs-test.json │ │ ├── test_data_clienttest-exception-handling-timeouterror-timeout-of-60s-reached.json │ │ ├── test_data_clienttest-status-handling-1009-hacsexception.json │ │ ├── test_data_clienttest-status-handling-200-does-not-raise.json │ │ ├── test_data_clienttest-status-handling-201-does-not-raise.json │ │ ├── test_data_clienttest-status-handling-301-hacsexception.json │ │ ├── test_data_clienttest-status-handling-302-hacsexception.json │ │ ├── test_data_clienttest-status-handling-304-hacsnotmodifiedexception.json │ │ ├── test_data_clienttest-status-handling-400-hacsexception.json │ │ ├── test_data_clienttest-status-handling-401-hacsexception.json │ │ ├── test_data_clienttest-status-handling-403-hacsexception.json │ │ ├── test_data_clienttest-status-handling-418-hacsexception.json │ │ ├── test_data_clienttest-status-handling-429-hacsexception.json │ │ ├── test_data_clienttest-status-handling-500-hacsexception.json │ │ ├── test_data_clienttest-status-handling-529-hacsexception.json │ │ ├── test_diagnosticstest-diagnostics-with-exception.json │ │ ├── test_diagnosticstest-diagnostics.json │ │ ├── test_sensor_cleanuptest-sensor-cleanup.json │ │ ├── test_switchtest-switch-entity-state-hacs-test-org-appdaemon-basic.json │ │ ├── test_switchtest-switch-entity-state-hacs-test-org-integration-basic.json │ │ ├── test_switchtest-switch-entity-state-hacs-test-org-plugin-basic.json │ │ ├── test_switchtest-switch-entity-state-hacs-test-org-python-script-basic.json │ │ ├── test_switchtest-switch-entity-state-hacs-test-org-template-basic.json │ │ ├── test_switchtest-switch-entity-state-hacs-test-org-theme-basic.json │ │ ├── test_system_healthtest-system-health-after-unload.json │ │ ├── test_system_healthtest-system-health.json │ │ ├── test_updatetest-update-entity-state-hacs-test-org-appdaemon-basic.json │ │ ├── test_updatetest-update-entity-state-hacs-test-org-integration-basic.json │ │ ├── test_updatetest-update-entity-state-hacs-test-org-plugin-basic.json │ │ ├── test_updatetest-update-entity-state-hacs-test-org-python-script-basic.json │ │ ├── test_updatetest-update-entity-state-hacs-test-org-template-basic.json │ │ ├── test_updatetest-update-entity-state-hacs-test-org-theme-basic.json │ │ ├── utils/ │ │ │ ├── test_pathtest-is-safe.json │ │ │ ├── test_queue_managertest-queue-manager.json │ │ │ └── test_versiontest-version-to-download.json │ │ └── validate/ │ │ ├── test_async_run_repository_checkstest-async-run-repository-checks.json │ │ ├── test_brands_checktest-added-to-brands.json │ │ ├── test_brands_checktest-local-brands-asset-content-in-root.json │ │ ├── test_brands_checktest-local-brands-asset-missing-falls-back-to-remote.json │ │ ├── test_brands_checktest-local-brands-asset-not-in-root.json │ │ ├── test_brands_checktest-not-added-to-brands.json │ │ ├── test_hacsjson_checktest-hacs-manifest-integration-zip-release-with-filename.json │ │ ├── test_hacsjson_checktest-hacs-manifest-no-manifest.json │ │ ├── test_hacsjson_checktest-hacs-manifest-with-invalid-manifest.json │ │ ├── test_hacsjson_checktest-hacs-manifest-with-missing-filename.json │ │ ├── test_hacsjson_checktest-hacs-manifest-with-valid-manifest.json │ │ ├── test_images_checktest-repository-has-images.json │ │ ├── test_images_checktest-repository-has-not-images.json │ │ ├── test_integration_manifest_checktest-hacs-manifest-with-invalid-manifest.json │ │ ├── test_integration_manifest_checktest-integration-manifest-with-valid-manifest.json │ │ ├── test_integration_manifest_checktest-integration-no-manifest.json │ │ ├── test_repository_archived_checktest-repository-archived.json │ │ ├── test_repository_archived_checktest-repository-not-archived.json │ │ ├── test_repository_description_checktest-repository-hacs-description.json │ │ ├── test_repository_description_checktest-repository-no-description.json │ │ ├── test_repository_information_file_checktest-has-info-file.json │ │ ├── test_repository_information_file_checktest-has-info-md-file.json │ │ ├── test_repository_information_file_checktest-has-readme-file.json │ │ ├── test_repository_information_file_checktest-has-readme-md-file.json │ │ ├── test_repository_information_file_checktest-no-info-file.json │ │ ├── test_repository_information_file_checktest-no-readme-file.json │ │ ├── test_repository_issues_checktest-repository-issues-enabled.json │ │ ├── test_repository_issues_checktest-repository-issues-not-enabled.json │ │ ├── test_repository_topics_checktest-repository-hacs-topics.json │ │ └── test_repository_topics_checktest-repository-no-topics.json │ ├── config_flow/ │ │ ├── test_already_configured.json │ │ ├── test_flow_with_activation_failure.json │ │ ├── test_flow_with_registration_failure.json │ │ └── test_full_user_flow_implementation.json │ ├── data_client/ │ │ └── base/ │ │ ├── data/ │ │ │ ├── appdaemon.json │ │ │ ├── integration.json │ │ │ ├── plugin.json │ │ │ ├── python_script.json │ │ │ ├── template.json │ │ │ └── theme.json │ │ ├── data_validate/ │ │ │ ├── appdaemon.json │ │ │ ├── critical.json │ │ │ ├── integration.json │ │ │ ├── plugin.json │ │ │ ├── python_script.json │ │ │ ├── removed.json │ │ │ ├── template.json │ │ │ └── theme.json │ │ └── repositories/ │ │ ├── appdaemon.json │ │ ├── integration.json │ │ ├── plugin.json │ │ ├── python_script.json │ │ ├── template.json │ │ └── theme.json │ ├── diagnostics/ │ │ ├── base.json │ │ └── exception.json │ ├── hacs-test-org/ │ │ ├── appdaemon-basic/ │ │ │ ├── test_discard_invalid_repo_data.json │ │ │ ├── test_download_repository.json │ │ │ ├── test_get_reposiotry_releases.json │ │ │ ├── test_remove_repository_post.json │ │ │ ├── test_remove_repository_pre.json │ │ │ ├── test_switch/ │ │ │ │ └── entity_states.json │ │ │ ├── test_update_entity_state.json │ │ │ ├── test_update_repository_entity.json │ │ │ └── test_update_repository_websocket.json │ │ ├── integration-basic/ │ │ │ ├── get_documentation/ │ │ │ │ ├── installed_false_last_version_2_0_0.md │ │ │ │ ├── installed_false_last_version_99_99_99.md │ │ │ │ ├── installed_true_installed_version_1_0_0.md │ │ │ │ └── installed_true_installed_version_1_0_0_last_version_2_0_0.md │ │ │ ├── test_discard_invalid_repo_data.json │ │ │ ├── test_download_repository.json │ │ │ ├── test_get_reposiotry_releases.json │ │ │ ├── test_remove_repository_post.json │ │ │ ├── test_remove_repository_pre.json │ │ │ ├── test_switch/ │ │ │ │ └── entity_states.json │ │ │ ├── test_update_entity_state.json │ │ │ ├── test_update_repository_entity.json │ │ │ └── test_update_repository_websocket.json │ │ ├── integration-basic-custom/ │ │ │ └── test_register_repository.json │ │ ├── plugin-basic/ │ │ │ ├── test_discard_invalid_repo_data.json │ │ │ ├── test_download_repository.json │ │ │ ├── test_get_reposiotry_releases.json │ │ │ ├── test_remove_repository_post.json │ │ │ ├── test_remove_repository_pre.json │ │ │ ├── test_switch/ │ │ │ │ └── entity_states.json │ │ │ ├── test_update_entity_state.json │ │ │ ├── test_update_repository_entity.json │ │ │ └── test_update_repository_websocket.json │ │ ├── plugin-custom-dist/ │ │ │ └── test_register_repository.json │ │ ├── python_script-basic/ │ │ │ ├── test_discard_invalid_repo_data.json │ │ │ ├── test_download_repository.json │ │ │ ├── test_get_reposiotry_releases.json │ │ │ ├── test_remove_repository_post.json │ │ │ ├── test_remove_repository_pre.json │ │ │ ├── test_switch/ │ │ │ │ └── entity_states.json │ │ │ ├── test_update_entity_state.json │ │ │ ├── test_update_repository_entity.json │ │ │ └── test_update_repository_websocket.json │ │ ├── template-basic/ │ │ │ ├── test_discard_invalid_repo_data.json │ │ │ ├── test_download_repository.json │ │ │ ├── test_get_reposiotry_releases.json │ │ │ ├── test_remove_repository_post.json │ │ │ ├── test_remove_repository_pre.json │ │ │ ├── test_switch/ │ │ │ │ └── entity_states.json │ │ │ ├── test_update_entity_state.json │ │ │ ├── test_update_repository_entity.json │ │ │ └── test_update_repository_websocket.json │ │ └── theme-basic/ │ │ ├── test_discard_invalid_repo_data.json │ │ ├── test_download_repository.json │ │ ├── test_get_reposiotry_releases.json │ │ ├── test_remove_repository_post.json │ │ ├── test_remove_repository_pre.json │ │ ├── test_switch/ │ │ │ └── entity_states.json │ │ ├── test_update_entity_state.json │ │ ├── test_update_repository_entity.json │ │ └── test_update_repository_websocket.json │ ├── scripts/ │ │ └── data/ │ │ ├── generate_category_data/ │ │ │ ├── appdaemon/ │ │ │ │ ├── data.json │ │ │ │ ├── repositories.json │ │ │ │ └── summary.json │ │ │ ├── integration/ │ │ │ │ ├── data.json │ │ │ │ ├── repositories.json │ │ │ │ └── summary.json │ │ │ ├── plugin/ │ │ │ │ ├── data.json │ │ │ │ ├── repositories.json │ │ │ │ └── summary.json │ │ │ ├── python_script/ │ │ │ │ ├── data.json │ │ │ │ ├── repositories.json │ │ │ │ └── summary.json │ │ │ ├── single/ │ │ │ │ ├── appdaemon/ │ │ │ │ │ └── hacs-test-org/ │ │ │ │ │ └── appdaemon-basic/ │ │ │ │ │ ├── data.json │ │ │ │ │ ├── repositories.json │ │ │ │ │ └── summary.json │ │ │ │ ├── integration/ │ │ │ │ │ └── hacs-test-org/ │ │ │ │ │ └── integration-basic/ │ │ │ │ │ ├── data.json │ │ │ │ │ ├── repositories.json │ │ │ │ │ └── summary.json │ │ │ │ ├── plugin/ │ │ │ │ │ └── hacs-test-org/ │ │ │ │ │ └── plugin-basic/ │ │ │ │ │ ├── data.json │ │ │ │ │ ├── repositories.json │ │ │ │ │ └── summary.json │ │ │ │ ├── python_script/ │ │ │ │ │ └── hacs-test-org/ │ │ │ │ │ └── python_script-basic/ │ │ │ │ │ ├── data.json │ │ │ │ │ ├── repositories.json │ │ │ │ │ └── summary.json │ │ │ │ ├── template/ │ │ │ │ │ └── hacs-test-org/ │ │ │ │ │ └── template-basic/ │ │ │ │ │ ├── data.json │ │ │ │ │ ├── repositories.json │ │ │ │ │ └── summary.json │ │ │ │ └── theme/ │ │ │ │ └── hacs-test-org/ │ │ │ │ └── theme-basic/ │ │ │ │ ├── data.json │ │ │ │ ├── repositories.json │ │ │ │ └── summary.json │ │ │ ├── template/ │ │ │ │ ├── data.json │ │ │ │ ├── repositories.json │ │ │ │ └── summary.json │ │ │ └── theme/ │ │ │ ├── data.json │ │ │ ├── repositories.json │ │ │ └── summary.json │ │ ├── test_generate_category_data_error_status_release/ │ │ │ └── integration/ │ │ │ ├── 304.json │ │ │ └── 404.json │ │ ├── test_generate_category_data_errors_release/ │ │ │ └── integration/ │ │ │ ├── CancelledError.json │ │ │ ├── TimeoutError.json │ │ │ └── error2.json │ │ ├── test_generate_category_data_with_30plus_prereleases/ │ │ │ └── integration.json │ │ └── test_generate_category_data_with_prior_content/ │ │ ├── appdaemon.json │ │ ├── integration.json │ │ ├── plugin.json │ │ ├── python_script.json │ │ ├── template.json │ │ └── theme.json │ ├── system_health/ │ │ ├── system_health.json │ │ └── system_health_after_unload.json │ ├── test_integration_setup.json │ └── test_integration_setup_with_custom_updater.json ├── test_config_flow.py ├── test_data_client.py ├── test_diagnostics.py ├── test_emuns.py ├── test_sensor_cleanup.py ├── test_switch.py ├── test_system_health.py ├── test_update.py ├── utils/ │ ├── test_decorator.py │ ├── test_fs_util.py │ ├── test_path.py │ ├── test_queue_manager.py │ ├── test_store.py │ ├── test_url.py │ ├── test_validate.py │ ├── test_version.py │ └── test_workarounds.py └── validate/ ├── test_async_run_repository_checks.py ├── test_brands_check.py ├── test_hacsjson_check.py ├── test_images_check.py ├── test_integration_manifest_check.py ├── test_repository_archived_check.py ├── test_repository_description_check.py ├── test_repository_information_file_check.py ├── test_repository_issues_check.py └── test_repository_topics_check.py