Module to act as an express endpoint for receiving Git webhooks & running commands

Usage no npm install needed!

<script type="module">
  import expressGitPuller from '';


Express Git Puller

Module to act as an express endpoint for receiving Github webhooks & running commands, e.g. for automatically pulling code from Git after pushing & restarting a pm2 app


  • The process directory should have git initalized
  • The git remote should also be configured
  • Also make sure to add any files you don't want to be overwritten to the .gitignore
npm install --save express-git-puller
Basic Server Example
// Hello World Example from
const express = require('express')
const bodyParser = require('body-parser')
const {Puller} = require('express-git-puller');
const app = express()
const port = 3000

app.use(bodyParser.json()) // Required for validating the request

// Register the puller middleware at the specified endpoint
const puller = new Puller({
    events: ["push"], // Events to listen for (optional, since you can select them on Github as well - set to * to handle all events)
    secret: "SuperSecretSecret", // Set this to verify the request against the secret provided to github
    vars: {
        appName: "ExampleApp"
app.use("/_my_git_endpoint", puller.middleware);

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening at http://localhost:${ port }`))
Github Webhook Example

  • Obviously use your project's public domain
  • Set Content type to application/json
  • (optional) Set a secret and add it to the puller config
  • (optional) Choose which events should be sent to the webhook - also make sure to change the puller config respectively