Have ideas to improve npm?Join in the discussion! »

    node-hook-action

    1.0.1 • Public • Published

    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

    Build Status

    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.

    Install

    npm i node-hook-action

    DownloadsWeekly Downloads

    4

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    24.6 kB

    Total Files

    21

    Last publish

    Collaborators

    • avatar