Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

maciejsmolinski/orchy

Open more actions menu

Repository files navigation

Orchy

🤹‍♂️A simple web hooks manager with zero npm dependencies. Built with PureScript.

Installation

$ npm install -g orchy

Configure web hooks and start the server

Create a configuration.json file with the following contents:

[
    {
        "id": "main",
        "dir": ".",
        "secret": "secret-token",
        "commands": [
            "git branch",
            "git status"
        ]
    }
]

Now, run the orchy server under http://localhost:8181

$ orchy

Orchy server is running at http://localhost:8181

To run it on a different port:

$ PORT=8282 orchy

Orchy server is running at http://localhost:8282

To execute the main configuration, open http://localhost:8181/run?definition=main&secret=secret-token in your browser or run the following in terminal

$ curl "http://localhost:8181/run?definition=main&secret=secret-token"

while the browser will show only a success message, the server will give you more feedback

Slack integration

To receive slack notifications, create a new Incoming Webhook in your Slack account. Then, run orchy with the following environment variables:

  • SLACK_HOOK_URL - webhook url, e.g. https://hooks.slack.com/services/ABC/DEF/GHI
  • SLACK_CHANNEL - channel to post notifications to, e.g. deployment-logs
$ SLACK_HOOK_URL=<url> SLACK_CHANNEL=<channel> orchy

Orchy server is running at http://localhost:8181

Feedback from the server

When configuration.json file is missing:

2019/08/05 23:55:40 err  Failure reading configuration.json

When configuration.json has a wrong format:

2019/08/05 23:56:40 err  Configuration file is not structured properly
2019/08/05 23:56:40      Error at array index 0: Error at property "id": Type mismatch: expected String, found Undefined

When selected definition is not present in the configuration:

2019/08/06 23:57:52 info Incoming request /run?definition=unknown&secret=unknown-token
2019/08/06 23:57:52 err  Definition with provided id and secret not found

When definition exists but one of the commands fails:

2019/08/06 00:02:20 info Incoming request /run?definition=main&secret=secret-token
2019/08/06 00:02:20 info Running definition "main"
2019/08/06 00:02:20 info Executing git branch
2019/08/06 00:02:20      fatal: not a git repository (or any of the parent directories): .git
2019/08/06 00:02:20      Process exited with status code 128
2019/08/06 00:02:20 err  Execution FAILED

Finally, when everything succeeds:

2019/08/06 00:03:30 info Incoming request /run?definition=main&secret=secret-token
2019/08/06 00:03:30 info Running definition "main"
2019/08/06 00:03:30 info Executing git branch
2019/08/06 00:03:30      * master
2019/08/06 00:03:30 info Executing git status
2019/08/06 00:03:30      On branch master
2019/08/06 00:03:30      nothing to commit, working tree clean
2019/08/06 00:03:30 info Execution SUCCEEDED

Local development

$ npm install -g spago@0.20.9 purescript@0.15.7 esbuild@0.17.11
$ spago bundle-app --platform=node -w
$ npx nodemon index.js

Running tests

$ spago test --watch

Similar projects

About

🤹‍♂️ A simple web hooks manager with zero npm dependencies

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.