Failing on custom integration due to integration_type in manifest

Hi,
I have a problem with hassfest that I’m hoping someone can help me with please. I’m the author of the visonic alarm custom integration here. After finding the instruction here to add the integration_type to the manifest file, this causes the hassfest action to fail

Validating supported_brands... done in 0.00s
Validating translations... done in 0.00s
Validating usb... done in 0.00s
Validating zeroconf... done in 0.00s
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/src/homeassistant/script/hassfest/__main__.py", line 237, in <module>
    sys.exit(main())
  File "/usr/src/homeassistant/script/hassfest/__main__.py", line 164, in main
    plugin.validate(integrations, config)
  File "/usr/src/homeassistant/script/hassfest/config_flow.py", line 187, in validate
    config.cache["config_flow"] = content = _generate_and_validate(integrations, config)
  File "/usr/src/homeassistant/script/hassfest/config_flow.py", line 89, in _generate_and_validate
    domains[integration.integration_type].append(domain)
KeyError: 'hub'
Validating config_flow...
Error: Process completed with exit code 1.

My hassfest action passes without the integration_type line in the manifest.
My hassfest file is copied from here

I’m not knowlegable in this area and any help would be apppreciated, my manifest file is on the above github link but here it is to save you looking it up

{
  "domain": "visonic",
  "name": "Visonic Intruder Alarm",
  "integration_type": "hub",
  "version": "0.8.2.2",
  "config_flow": true,
  "documentation": "https://github.com/davesmeghead/visonic/wiki",
  "issue_tracker": "https://github.com/davesmeghead/visonic/issues",
  "dependencies": [],
  "codeowners": ["@davesmeghead"],
  "requirements": ["pyserial_asyncio==0.4"],
  "iot_class": "local_push"
}

In addition to failing the hassfest action, with this setting in the manifest file the integration does not appear on the integration page within Home Assistant.

I don’t know anything about integrations…

Does it work if you set hub to device or service?

Thank’s for the reply,
No it doesn’t, if I have the setting in the manifest file the Integration no longer appears on the Integrations Page. Just to be clear, the Integration still seems to run and work, and sensors, switches etc are OK. It simply does not show itself on the Integrations Page. I’m using the latest Home Assistant version 2022.10.5.

Perhaps the checkout v2?

name: Validate with hassfest

on:
  push:
  pull_request:
  schedule:
    - cron: "0 0 * * *"

jobs:
  validate:
    runs-on: "ubuntu-latest"
    steps:
      - uses: "actions/checkout@v2"    #### do you still have v2?
      - uses: home-assistant/actions/hassfest@master

Thanks for that and I’ll give it a try.

That still doesn’t explain why the integration does not appear on the integrations page withinHome Assistent though, any ideas anyone?

Hi. I can’t provide a solution but the integration is showing on my integrations page, probably because I’m am still running Visonic 0.8.2.1 on Home Assistant Core 2022.10.2
I’m just posing this here in case it helps.

I have found the same on an integration i help write. Not sure if this relies on 2022.11 version of HA as it is a change due in that version but not needed initially as will default to hub if no entry in manifest.json