A service that generates cross-repo release reports based off of GitHub and ZenHub data. It has 2 functions:
- a scraper that fetches data and caches it in redis, meant to be run as a cron job
- an API for accessing reports
Name | Type | Default | Description |
---|---|---|---|
GITHUB_TOKEN | String | "" | Github access token |
ZENHUB_TOKEN | String | "" | Zenhub access token |
REDIS_HOST | String | "" | Redis host name |
REDIS_PASSWORD | String | "" | Redis password |
REDIS_PORT | String | 6379 | Redis port |
RELEASE_REPO_ID | String | "" | ID of a repository that is associated with the releases you want to track. This is used as the starting point for fetching release data across repositories. |
To start the app in development, first copy the .env.example
file to a .env file:
cp .env.example .env
Fill out the .env
file with your GitHub and ZenHub credentials, then run the following:
npm install
npm run start:dev
This will bring up a development docker-compose with Redis, a scraper, and the reporter API. The scraper runs once and then exits. Source code is mounted into the reporter container, so the API will recompile with any code changes.
You can also run npm run start:prod
, which will build the production docker containers and launch a docker-compose.
Kubernetes deployment files can be found in the top level /kubernetes
directory. Fill out /kubernetes/env-configmap.yaml
before applying:
for f in kubernetes/*.yaml; do kubectl apply -f $f; done
Kait Moreno - https://kaitlinmoreno.com
This project is licensed under MIT - see the LICENSE file for details