If you're interested in helping out maintaining, please write in this discussion
Hello there! 👋
Thank you for taking the time to check out this project.
Looking to contribute? Great! Please read the contribution guidelines first.
Do you use github actions? Maybe you use it to run workflows that should do something at a specific date and time.
This is an app that will be able to dynamically import and schedule GitHub workflows.
- Github integration
- Authentication
- Importing repositories and workflows
- Triggering workflows
The repository comes with a local docker-compose
that can be used for development.
-
Start ngrok to handle incoming webhooks from GitHub. See the development readme for more details
ngrok http 3000
-
Copy example env file and update the values needed
cp .env-example .env
-
Build and start the local docker compose containers
docker compose up --build -d
-
Push the database schema to the database
docker compose exec frontend npx prisma db push
Now you should be able to browse to http://localhost:3000
The application is built using Typescript, Next.js, tRPC, tailwindcss, and Prisma.
Authentication is done with NextAuth.js and using GitHub as the main Provider.
The application relies on incoming webhooks to receive events from GitHub. To solve this when developing locally behind a NAT router we have used ngrok. Note that ngrok is not a requirement but one of many webhook development tools.
The code that handles the scheduling at the moment quite simple.
- First we have a special private api endpoint that will find all of the scheduled workflows that should be fired in github at the current point in time.
- The second part consist of some small script that will make a http request to that endpoint every minute.