This is an express router to catch webhooks. So you add this router to your express server and this router will emit signal when webhooks are triggered by services.
$ npm install webhook-catcher
import WebhookCatcher from 'webhook-catcher'
import express from 'express'
const app = express()
const catcher = new WebhookCatcher({
services: [ 'bitbucket', 'github' ],
token: '...',
})
app
.use('/webhook', catcher.router)
.get('/', (req, res) => {
res.send('ok')
})
catcher.on('push', (pullRequest) => {
// pull request
// {
// appName: ...,
// repositoy: ...,
// service: 'github' | 'bitbucket',
// branchSource: ...,
// branchDestination: ...,
// description: ...,
// title: ...,
// reviewers: ...,
// url: ...,
// see all fields in the following documentation
// }
})
catcher.on('push', (push) => {
// push
// {
// appName: ...,
// repositoy: ...,
// service: 'github' | 'bitbucket',
// branch: '...', // which branch is concerned
// }
})
For now, it manages services:
- github
- bitbucket
See how to define webhook in services in services documentation
If you want specific tokens for each service, you can also define the webhook catcher like this:
const catcher = new WebhookCatcher({
services: [
{
name: 'bitbucket',
token: '...',
},
{
name: 'github',
token: '...',
}],
})
For now, it manages events:
- push
- pull request
See all events fields in events documentation