Autopull listens on http for git change events (can be configured via Github Webhooks) and when it detects a change, it automatically does a git pull.
It is recommended to install this globally.
$> npm install -g git-autopull
- Currently only works with Github projects. You need to configure a Webhook.
- The path and secret configured in the webhook need to be passed as environment variables.
- The working directory needs to be from within the cloned git repository that is being watched.
There are a lot of environment variables that can be specified.
|Environment Variable||Default Value||Description|
|WEBHOOK_PATH||/event||The URL path that the git-autopull client should listen on|
|WEBHOOK_SECRET||secret||The secret configured on github for this webhook|
|WEBHOOK_EVENT||push||An optional filter to specify what event or events (comma separated strings) to listen for. If not specified, it will only listen on push events.|
|WEBHOOK_REPO_ID||no default||If specified, autopull will only happen for this repo|
|WEBHOOK_REPO_NAME||no default||If specified, autopull will only happen for this repo|
|WEBHOOK_REMOTE||origin||The name of the git remote to pull.|
An example raw usage is as below:
$> WEBHOOK_PATH=/github WEBHOOK_SECRET=secret git-autopull
Unfortunately, this is less than ideal particularly on server environments. It is better to daemonize this via forever as follows:
$> [sudo] npm install -g forever $> WEBHOOK_PATH=/github WEBHOOK_SECRET=secret forever start -p /usr/local/var/git-autopull -l forever.log -o forever.out -e forever.err -c git-autopull
- Add support for running arbitrary commands instead of git commands
- Add binary script which will use forever correctly