A good template to use as a reference is blueprint.
For a integration repository to be valid these are the requirements:
- There is only one integration (one directory under
ROOT_OF_THE_REPO/custom_components/) per repository (if you have more, only the first one will be managed).
- The integration (all the Python files for it) are located under
Not OK example (1):
Not OK example (2):
In the integration directory, there is a
GitHub releases (optional)
If there are releases
When installing/upgrading it will scan the content in the latest release.
If there are multiple releases in the repository the user have some options to install a specific version. The choices will be the last 5 releases and the default branch.
If you are using releases you can also set a minimum Home Assistant version in the
manifest.json file, example:
If the user try to install this and the minimum Home Assistant requirement is not met, the user will receive a warning and it will block install/upgrade until Home Assistant is upgraded.
If there are no releases
It will scan files in the branch marked as default.