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 nodejs to install the smee-client to test the application locally.
You can install the full development environment using Spack.
After cloning the repository you'll need to follow the Getting Started documentation to setup a testing,
- GitHub Repo
- GitHub App
- GitLab Repo
- GitLab Repo Webhook
- GitLab Repo Access Token
Tip
If you're developing locally you can use smee.io to relay webhooks to your local machine. Just click "Start a new channel" & 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
├── hubcast # ------> python application
├── pyproject.toml
├── spack.lock
└── spack.yaml -----> spack development environment
hubcast
├── __main__.py # --> hubcast entrypoint and config setup
├── auth # ---------> authentication library for GitHub/GitLab
├── github.py # ----> GitHub router setup
├── gitlab.py # ----> GitLab router setup
├── routes # -------> GitHub & GitLab event routing logic
└── utils # --------> Git and common application utilities