0.8.0 • Published 1 year ago

orchy v0.8.0

Weekly downloads
4
License
MIT
Repository
github
Last release
1 year ago

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

0.8.0

1 year ago

0.7.0

1 year ago

0.6.0

5 years ago

0.5.0

5 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago

0.0.1

5 years ago