A reusable GitHub Action that validates manifest.json
files for RotorHazard plugins. It checks for missing fields, invalid formats, and unsupported values, and logs validation errors directly in GitHub Actions logs using GitHub-friendly annotations.
- β
Schema validation for
manifest.json
- β Plugin repository structure validation
- π¨ GitHub Action annotations for validation errors
β οΈ Warnings for missing optional fields or extra fields- π Validates for example:
- domain format (e.g., lowercase letters, numbers, underscores)
- codeowners GitHub handle (
@username
) - documentation URL format
- dependencies in
package==X.Y.Z
format
Create a file .github/workflows/validate.yml
in your plugin repository with the following content:
name: Validate Plugin Manifest
on:
push:
pull_request:
jobs:
validate:
name: Run RHFest validation
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Run RHFest validation
uses: docker://ghcr.io/rotorhazard/rhfest-action:v1
To run RHFest image locally on your plugin repository, use the following command:
docker run --rm -v "$(pwd)":/app ghcr.io/rotorhazard/rhfest-action:latest
How to setup the development environment.
You need the following tools to get started:
- Clone the repository
- Install all dependencies with UV. This will create a virtual environment and install all dependencies
uv sync
- Setup the pre-commit check, you must run this inside the virtual environment
uv run pre-commit install
- Run the application
uv run python rhfest/core.py
As this repository uses the pre-commit framework, all changes are linted and tested with each commit. You can run all checks and tests manually, using the following command:
uv run pre-commit run --all-files
To manual run only on the staged files, use the following command:
uv run pre-commit run
This project was inspired by:
- Manifest validation in HACS
- Manifest validation (Hassfest) in Home Assistant
Distributed under the MIT License. See LICENSE
for more information.