You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using the Github webhooks / services API with AWS Lambda can be annoying because by default, AWS Lambda strips out request headers and getting them back requires a bunch of fiddly configuration (and Github webhooks pass the event type in a header).
identify-github-event identifies Github webhook events based on their payload and returns the event name
since v1.1.0: can also return the user, repo and branch information from a Github event (except for MembershipEvent which does not contain that information).
note that Github events have unique signatures as long as you look at the full set of key names; if this ever becomes not true then some events may be confused with each other since some events share key names (but not key name signatures; e.g. difference(event.keynames, union(other.keynames)) is an empty set for some events like PublicEvent and).
the type key, which is not present on webhooks/services but is present on Events API calls is used if it is available (after validating it against the list of known events)
var identifyGithubEvent = require('identify-github-event');
console.log(identifyGithubEvent(event));
// returns the CamelCased name, e.g. PushEvent (or undefined if the event signature is unknown)
console.log(identifyGithubEvent.target(event));
// returns a hash { user: 'name', repo: 'somename', branch: 'somebranch' }
Rebuilding
The mapping.json and event-names.json files are automatically generated via npm prepublish script. To run it manually, run npm run-script prepublish.