0.0.1 • Published 9 years ago

git-autopull v0.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

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 VariableDefault ValueDescription
WEBHOOK_PATH/eventThe URL path that the git-autopull client should listen on
WEBHOOK_SECRETsecretThe secret configured on github for this webhook
WEBHOOK_EVENTpushAn 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_IDno defaultIf specified, autopull will only happen for this repo
WEBHOOK_REPO_NAMEno defaultIf specified, autopull will only happen for this repo
WEBHOOK_REMOTEoriginThe 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