Skip to content

Latest commit

 

History

History
54 lines (46 loc) · 2.19 KB

File metadata and controls

54 lines (46 loc) · 2.19 KB

Contributing

Introduction

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.

Prerequisites

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.

Development

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

Project Structure

.
├── LICENSE
├── README.md
├── docs # ---------> project documentation
├── src # ----------> Python application
├── spack # --------> Spack package files
├── pyproject.toml
└── spack.yaml # ---> Spack development environment
src/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