Skip to content

Commit451/skyhook

Repository files navigation

skyhook

Parses webhooks and forwards them in the proper format to Discord.

Discord

Setup

You can use the site to create the right webhook link and send a test notification to Discord before configuring your provider. If you want to manually create the link, here are the steps:

  1. Create a webhook in Discord (Server Settings -> Webhooks -> Create Webhook)
  2. Copy the webhook url
  3. Turn the Discord webhook url into a skyhook webhook url like so:
Replace discord.com in url with skyhookapi.com
https://discord.com/api/webhooks/firstPartOfWebhook/secondPartOfWebhook
->
https://skyhookapi.com/api/webhooks/firstPartOfWebhook/secondPartOfWebhook
  1. Add the provider you want to the end of the url:
https://skyhookapi.com/api/webhooks/firstPartOfWebhook/secondPartOfWebhook/providerGoesHere

Supported Providers

Linear setup

Create a webhook in Linear's API settings and use the generated /linear URL as its endpoint. You can subscribe the webhook to all public teams or one team and select any supported resource types. Skyhook formats Linear data-change events (including issues, comments, projects, cycles, documents, initiatives, customers, and users) as well as Issue SLA and OAuth app revocation events.

Linear signatures use a secret that belongs to the configured webhook. Skyhook's generated URL does not include or store that secret, so Skyhook cannot verify Linear-Signature; all incoming values are treated as untrusted display data and Discord mentions are disabled.

Zendesk setup

Use the generated /zendesk URL as the endpoint for a Zendesk webhook that subscribes directly to Zendesk events. Configure the webhook to use POST with the json request format, then select the event subscriptions you want delivered to Discord. Skyhook supports the standard Zendesk event schema across ticket, user, organization, article, and future event domains.

Zendesk trigger and automation webhooks are not automatically parsed because their request payload is administrator-defined. Connect the webhook through event subscriptions instead.

If you want support for a new provider, just create a pull request and add it!
Alternatively, a new provider can also be requested by creating an issue.

Contributing

If you wish to contribute, follow our contributing guide.

Creating a Provider

If you want to create a new provider please follow the examples shown at our small documentation.

Testing Locally

To build:

npm run build

To run server (after building):

npm start

To do both:

npm run buildstart

To run tests:

npm test

Through Docker:

docker run -it --rm -p 8080:8080 commit451/skyhook

Deploying

Thanks

Special thanks to all our amazing contributors. skyhookapi.com is hosted for free for you, so if you feel so inclined, buy a coffee!

License

skyhook is available under the MIT license. See the LICENSE file for more info.

\ ゜o゜)ノ

Used by

Contributors

Languages