Skip to content

alexcorvi/github-webhooks-listener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Github Webhooks Listener

This is a client library for listening (receiving) to GitHub Webhooks and execute a callback on them.

Note: This client library based on the excellent Node Github Hook library.

To Install:

npm install gh-listener

To Use:

import GHClient from "gh-listener";

const github = new GHClient({
  /* options: see below */
});

github.onPush((data) => {
  console.log(data.commits.map(x => x.author)); // prints the authors of the commits
});

Methods and events

The library has the following methods and supports their respective events:

Method Event GitHub Reference
github.onCommitComment(cb) commit_comment Reference
github.onCreate(cb) create Reference
github.onDelete(cb) delete Reference
github.onDeployment(cb) deployment Reference
github.onDeploymentStatus(cb) deployment_status Reference
github.onFork(cb) fork Reference
github.onGollum(cb) gollum Reference
github.onInstallation(cb) installation Reference
github.onInstallationRepository(cb) installation_repository Reference
github.onIssueComment(cb) issue_comment Reference
github.onIssue(cb) issue Reference
github.onLabel(cb) label Reference
github.onMembership(cb) membership Reference
github.onMilestone(cb) milestone Reference
github.onOrganization(cb) organization Reference
github.onOrganizationBlock(cb) organizationBlock Reference
github.onPageBuild(cb) page_build Reference
github.onPullRequest(cb) pull_request Reference
github.onPullRequestReview(cb) pull_request_review Reference
github.onPullRequestReviewComment(cb) pull_request_review_comment Reference
github.onPush(cb) push Reference
github.onRelease(cb) release Reference
github.onRepository(cb) repository Reference
github.onStatus(cb) status Reference
github.onWatch(cb) watch Reference

Options

Available options are:

  • host: the host to listen on, defaults to '0.0.0.0'
  • port: the port to listen on, defaults to 3420
  • path: the path for the GitHub callback, defaults to '/github/callback'
  • wildcard: if true, the path for the GitHub callback will be considered valid as long as it starts with the configured path
  • secret: if specified, you must use the same secret in your webhook configuration in GitHub. if a secret is specified, but one is not configured in GitHub, the hook will fail. if a secret is not specified, but one is configured in GitHub, the signature will not be validated and will be assumed to be correct. consider yourself warned. this option can also be a function that takes the following parameters: (request, data, callback). callback is error first and should be passed (err, secret)
  • logger: an optional instance of a logger that supports the "log" and "error" methods and one parameter for data (like console), default is console.
  • https: Options to pass to nodejs https server. If specified, you must follow documentation about nodejs https library (See options in https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener)
  • trustProxy: By default the x-forwarded-for header is trusted when determining the remoteAddress to log for a request. Set this to false to disable this behavior
  • enableHealthcheck: Respond to GET requests with a 204 response for healthcheck purposes
  • healthcheckCode: Override the 204 status code for healthchecks (for systems that aren't friendly with HTTP spec compliance and want a 200, for example)
new GHClient({
	enableHealthcheck: false,
	healthcheckCode: 200,
	host: '0.0.0.0',
	https: {
		ciphers: 'something'
	},
	path: 'listen',
	port: 3000,
	secret: 'mysecretkey',
	trustProxy: true,
	wildcard: true
});

License

MIT

About

A NodeJS client (listener) for GitHub events webhooks writen in typescript

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published