A simple node.js based github post-receive server
OTHER License
This is a very simple, easy to use evented web hook API for GitHub or GitLab. A command-line executable is also available.
npm install githubhook
var githubhook = require('githubhook');
var github = githubhook({/* options */});
github.listen();
github.on('*', function (event, repo, ref, data) {
});
github.on('event', function (repo, ref, data) {
});
github.on('event:reponame', function (ref, data) {
});
github.on('event:reponame:ref', function (data) {
});
github.on('reponame', function (event, ref, data) {
});
github.on('reponame:ref', function (event, data) {
});
// GitLab system hooks
github.on('*', function (event, type, data) {
});
github.on('type', function (event, data) {
});
// if you'd like to programmatically stop listening
// github.stop();
Where 'event' is the event name to listen to (sent by GitHub or Gitlab, typically 'push' or 'system'), 'reponame' is the name of your repo (this one is node-github-hook), 'ref' is the git reference (such as ref/heads/master), and 'type' is the type of system hook.
Configure a WebHook URL to whereever the server is listening, with a path of /github/callback
and you're done!
Available options are:
console
.x-forwarded-for
header is trusted when determining the remoteAddress to log for a request. Set this to false
to disable this behaviorYou can use the command-line client to execute a shell script when a particular event occurs.
Install it globally:
$ npm install -g githubhook
Then you can run githubhook
:
$ githubhook --help
Usage:
githubhook [--host=HOST] [--port=PORT] [--callback=URL_PATH] [--secret=SECRET] [--verbose] <trigger> <script>
Options:
--host=HOST Address to listen on
--port=PORT Port to listen on
--callback=URL_PATH The callback URL path
--secret=SECRET The secret you use the in the GitHub webhook config
--key=KEY_PATH Path to read https certificate key file
--cert=CERT_PATH Path to read https certificate file
--verbose Log to console
--version Output the version number
-h, --help Output usage information
Default values for options are same as for the API (see above).
Example usage:
$ githubhook push:node-github-hook ./some_script.sh
MIT