- Use Case
- Log in →
- Demoing your website
- Receiving webhooks on localhost
- Ingress for any Kubernetes environment
- Execute shell scripts on remote machines
- Manipulate webhook request body
- Convert DockerHub webhook to Slack notification
- Enrich webhooks from 3rd party APIs
Convert DockerHub webhook to Slack notification
Many Docker registries provide a way to notify team in chat channels when new images are pushed (if you are waiting for a build complete). Let’s add this capability to the official DockerHub registry! :)
- Create a bucket here https://my.webhookrelay.com/buckets
Once you have it, in the inputs section you will find your public input endpoint, copy it:
Add a new DockerHub webhook setting pointing at our public input endpoint (DockerHub docs):
Push a new Docker image:
$ docker push karolisr/demo-webhook:latest
We should be able to see a new incoming webhook. It looks like this:
Go to the Functions page and click on a “Create Function” button. Enter a name, for example “dockerhub-to-slack” and click “Submit”.
You can now copy/paste webhook payload into the “request body” area for later tests. In the code editor let’s add a function to get repository name and prepare a Slack webhook payload (currently functions have to be written in Lua but more examples for WebAssembly will be added soon):
local json = require("json")
Click “Save” and then try testing it with the “Send” button:
Navigate to https://api.slack.com/messaging/webhooks and click “Create your Slack app”. Select your workspace, enter a name that you will remember.
Create a new incoming webhook configuration, copy “Webhook URL” (it starts with
https://hooks.slack.com/services/T3...), we will need to supply it to Webhook Relay.
- Open your bucket details (via https://my.webhookrelay.com/buckets)
Open “OUTPUT DESTINATIONS” tab and create a new output called “Slack” with the Slack URL from step 2:
Once created, click on the “code” symbol and from the dropdown select
Push new image to DockerHub, you should see a new notification in your Slack channel:
That’s it, feel free to continue modifying Lua function to include pusher’s name and message format. Following this process you can transform any webhook into any other webhook.