RHFest Action
ActionsTags
(2)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 keys in
manifest.json
- ✅ Plugin repository structure validation
- 📁 Presence of
custom_plugins
folder - 📁 Presence of single plugin domain folder
- 📄 Presence of
manifest.json
file
- 📁 Presence of
- 🚨 GitHub Action annotations for validation errors
⚠️ Warnings for missing required fields- 🐳 Docker image for local testing (manual or pre-commit)
- 📋 Validates for example:
- domain format (e.g., lowercase letters, numbers, underscores)
- version semver format (e.g.,
X.Y.Z
) - dependencies using the version specifiers format (e.g.,
==X.Y.Z
) - documentation_uri URL 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:v3
Needs Docker installed
RHFest is available as a Docker image, which makes it easy to test locally without installing any dependencies. To test your RotorHazard plugin repository, you can use the following command:
docker run --rm -v "$(pwd)":/repo 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
To build the Docker image locally, run the following command:
docker build -t rhfest-action:latest .
To run the Docker image, use the following command:
docker run --rm -v "$(pwd)":/repo rhfest-action:latest
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.
RHFest Action is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.