Skip to content

Provide a simple Express Node application that listen for incomming query and define shell action

Notifications You must be signed in to change notification settings

creharmony/node-hook-action

Repository files navigation

node hook action

NPM

Provide a simple Express Node application that listen for incoming queries (Webhooks). A flat json config file define shell action to do on incoming queries.

Node-hook-action supports:

  • github webhooks,
  • header value condition,
  • json payload value condition.

Inspired by RazvanCristian/node-git-webhook

How to use ?

  • create a sample webhook configuration file. Like config.json
  • install node-hook-action as dependency
npm install node-hook-action
  • run the server.
node -e 'require("node-hook-action")()'
  • try the client in another console !
# if you didn't clone the repository, simply copy examples/ scripts
./examples/webhookPostExample.sh

JSON config file content

  • server_config : Hook Express server config
  • server_config.path : Webhook path
  • server_config.secret : which kind of secret does your webhook queries are using ? at least one secret must be filled.
  • server_config.secret.github : to set when using github webhooks. Set github webhook secret value here.
  • server_config.secret.custom : to match a simple post x-token header value.
  • server_config.directories.logs : logs directory (optional): to set if you would like to log into a dedicated directory in addition to console logs.
  • actions: setup one or more actions or conditional actions to do on webhook reception.
  • actions.headers: action headers (key/value) condition.
  • actions.payload: action payload condition. The key is a valid json path. The value is an expected string at json path location in webhook JSON payload.
  • actions.events: per event action(s).
  • actions.events.event: (github use case) value of x-github-event header. (custom use case) set to custom
  • actions.events.action: shell command to execute.
  • actions.events.action.async=true: shell async command to execute.

There is a ready to use config.json at root directory, that match related examples, and tests.

How to contribute

You're not a dev ? just submit an issue (bug, improvements, questions). Or else:

npm start
# or
# ./bin/www
# then play samples
./examples/xxxx.sh
  • Mocha tests
npm run test
  • you could also fork, feature branch, then submit a pull request.

Services or activated bots

badge name description
Reviewed by Hound Houndci JavaScript automated review (configured by .hound.yml)
CI/CD Github actions Continuous tests.
Audit Github actions Continuous vulnerability audit.
Automated Release Notes by gren gren Release notes automation

About

Provide a simple Express Node application that listen for incomming query and define shell action

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published