Skip to content

Gisonrg/express-github-webhook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

express-github-webhook

Build Status

A Express middleware for handle Github Webhooks

To Install:

npm install express-github-webhook

To Use:

Make sure you use body-parser middleware for your Express app

var GithubWebHook = require('express-github-webhook');
var webhookHandler = GithubWebHook({ path: '/webhook', secret: 'secret' });

// use in your express app
let app = express();
app.use(bodyParser.json()); // must use bodyParser in express
app.use(webhookHandler); // use our middleware

// Now could handle following events
webhookHandler.on('*', function (event, repo, data) {
});

webhookHandler.on('event', function (repo, data) {
});

webhookHandler.on('reponame', function (event, data) {
});

webhookHandler.on('error', function (err, req, res) {
});

Where 'event' is the event name to listen to (sent by GitHub, such as 'push'), 'reponame' is the name of your repo.

'error' event is a special event, which will be triggered when something goes wrong in the handler (like failed to verify the signature).

Available options for creating handler are:

  • path: the path for the GitHub callback, only request that matches this path will be handled by the middleware.
  • secret (option): the secret used to verify the signature of the hook. If secret is set, then request without signature will fail the handler. If secret is not set, then the signature of the request (if any) will be ignored. Read more
  • deliveryHeader (option): header name for the delivery ID, defaults to x-github-delivery
  • eventHeader (option): header name for the event type, defaults to x-github-event
  • signatureHeader (option): header name for the event signature, defaults to x-hub-signature
  • signData (option): signature function used to compute and check event signatures, defaults to GitHub SHA1 HMAC signature. Will receive the secret and data to sign as arguments.

TODO

  • Add support for content type of application/x-www-form-urlencoded
  • Provide more available options
  • Get rid of body-parser middleware

License

MIT

About

A Express middleware for handle Github Webhooks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published