Hubcast welcomes contributions via Pull Requests. We've labeled beginner friendly (good first issue) tasks in the issue tracker. Feel free to reach out and ask for help when getting started.
For small changes (e.g. bug fixes), feel free to submit a PR.
For larger architectural changes and new features, consider opening an issue outlining your proposed contribution.
Hubcast is written in Python. You'll need a version of Python and pip to install the required dependencies and Node.js to install the smee-client to test the application locally.
You can install the full development environment using Spack.
After cloning the Hubcast repository, we recommend reading through the documentation and each guide (admin, user, developer) to understand how to use Hubcast and set up your local environment.
Tip
If you're developing locally you can use smee.io to relay webhooks to your local machine. Just click "start a new channel" and then run the following, substituting your channel url as the argument and GitHub App endpoint.
$ smee -u https://smee.io/reDaCTed.
├── LICENSE
├── README.md
├── docs # ---------> project documentation
├── src # ----------> Python application
├── spack # --------> Spack package files
├── pyproject.toml
└── spack.yaml # ---> Spack development environmentsrc/hubcast
├── __main__.py # --> Hubcast entrypoint and config setup
├── config.py # ----> Hubcast config manager
├── logging.py # ---> Hubcast logging config
├── account_map # --> User mapping between Git forges
├── clients # ------> GitHub & GitLab auth and API clients
├── repos # --------> Hubcast-managed Git repo config
├── web # ----------> GitHub & GitLab event routing logic