https://github.com/creharmony/node-hook-action
Provide a simple Express Node application that listen for incomming query and define shell action
https://github.com/creharmony/node-hook-action
github hacktoberfest hacktoberfest2021 nodejs webhook webhooks
Last synced: 2 months ago
JSON representation
Provide a simple Express Node application that listen for incomming query and define shell action
- Host: GitHub
- URL: https://github.com/creharmony/node-hook-action
- Owner: creharmony
- Created: 2020-12-05T20:10:10.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-01-22T12:39:25.000Z (over 4 years ago)
- Last Synced: 2025-02-18T20:45:21.992Z (over 1 year ago)
- Topics: github, hacktoberfest, hacktoberfest2021, nodejs, webhook, webhooks
- Language: JavaScript
- Homepage:
- Size: 29.3 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# node hook action
[](https://npmjs.org/package/node-hook-action)
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](https://github.com/RazvanCristian/node-git-webhook/blob/master/src/index.ts)
## How to use ?
- create a sample webhook configuration file. Like [config.json](config.json)
- install node-hook-action as dependency
```
pnpm 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](https://www.npmjs.com/package/jsonpath).
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](config.json) at root directory, that match related [examples](./examples),
and [tests](./tests).
## How to contribute ?
cf. [CONTRIBUTING](./.github/CONTRIBUTING.md)
### Services or activated bots
| badge | name | description |
|--------|-------|:--------|
| [](https://houndci.com)|[Houndci](https://houndci.com/)|JavaScript automated review (configured by `.hound.yml`)|
|  |Github actions|Continuous tests.
| [](https://github.com/creharmony/node-hook-action/actions/workflows/audit.yml) |Github actions|Continuous vulnerability audit.