git-autopull
v0.0.1
Published
Script to do git pull automatically on changes to repo
Downloads
3
Readme
Git Autopull
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.
Install
It is recommended to install this globally.
$> npm install -g git-autopull
Prerequisites
- 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.
Environment variables
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.
Usage
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
TODO
- Add support for running arbitrary commands instead of git commands
- Add binary script which will use forever correctly