This project has been archived as of August 12, 2019. Please see our article for details. Note, the below documentation requires a GitHub application to be setup as our application has been removed.
- Install Node > 8.9
- Install Postgres
- Install RabbitMQ
- Clone this repo
- Create
.env
file details below
Create an .env
file and populate it with the values for the following variables:
- FEATHERS_AUTH_SECRET: Secret for feathers-authentication
- PORT: port to start server on (local only)
- GITHUB_CLIENT_SECRET: secret from GitHub App
- GITHUB_CLIENT_ID: id from GitHub App
- GITHUB_ISSUE_ID: issue id from GitHub App
- GITHUB_PRIVATE_KEY: Private key generated via GitHub app
- GITHUB_WEBHOOK_SECRET: Private secret to verify event signatures
- DATABASE_URL: Postgres connection string
- CLOUDAMQP_URL: AMQP connection string
- WORK_PATH: Local directory where repos are cloned and worked on
- CHECK_INTERVAL: Time in ms before a check is considered out of date
- Start RabbitMQ server
- Run migrations
yarn run develop:sequelize db:migrate
- Run
yarn run develop
yarn run develop:<job name>
All develop:
scripts use the environment variables from your .env
file so it is required
when running locally.
git push heroku master
Stores each repo ReleaseHawk is installed on along with the installationId
.
Represents each entity that needs to be watched. lastUpdated
is a checksum for
the current release, lastCheckedAt
is the timestamp of the last time the target
was checked.
This is a periodic task that checks if there is a newer or different release than the current one recorded in the DB. This will also remove any watches not in the repo's config.
This is a periodic task that checks if there are changes in a watch's config. New targets are added as watches.
Clones the repo and creates a PR with a starter config file and instructions. If any issues are encountered, an issue will be created instead.
Parses a repo's config file creating an entry in watches
for each target.
Clones a repo, downloads the latest version of the target and (optionally) runs a script before submitting a PR for the update.
ReleaseHawk listens to installation
, installation_repository
, pull_request
and
issue
events from each repository.
Incoming events are verified by matching the X-Event-Signature
with a signature
created using ReleaseHawk's webhook secret.
0.0.1
- Initial release
Copyright (c) 2018
Licensed under the MIT license.