Webhook Integrations

There are a number of third party services you can use with Buildkite webhooks. Some services (such as RequestBin, APITools and Zapier) are designed specifically with webhooks in mind, and others (such as AWS Lambda, Google Cloud Functions, IronWorker and Webtask) are general purpose programming platforms which can be triggered with webhook HTTP requests.

RequestBin

RequestBin is free service by Runscope which creates private URLs you can use to inspect and debug webhook requests. It's a great starting place for understanding how Buildkite webhooks work.

To get started go to http://requestb.in and create a new bin:

Screenshot of Create a RequestBin request

Copy the bin’s URL and add it in a new Buildkite webhook notification. Once you've saved the notification settings we’ll send it a Ping event. Simply reload your RequestBin page to inspect the ping webhook request.

AWS Lambda

AWS Lambda is an Amazon service for hosted Javascript execution, and supports exposing functions via URLs. You can follow their GitHub webhook guide for an example of how to publish Buildkite webhook events as SNS topics and then process them using AWS Lambda.

Google Cloud Functions

Google Cloud Functions are a Google Cloud service for hosted Javascript execution, and also supports exposing functions via URLs. See the Calling Cloud Functions documentation for how to expose them, and their Hello World walkthrough for getting started.

IronWorker

Iron.io’s IronWorker is a service for hosted code execution using Docker containers. You can follow their webhook worker documentation and sample code for an example of how to create an endpoint to use with Buildkite webhooks.

APItools

APItools is a tool for ingesting and manipulating API requests. You can use it as a webhook receiver, write LUA middleware for triggering behavior on incoming webhooks. See this gist for a complete example of using APItools middleware to control the LIFX API based on Buildkite webhooks.

Zapier

Zapier is a system for connecting APIs together, and has built in support for hundreds of services. For example, you could use Zapier to send an email when a build has finished, save a build artifact into a Dropbox folder, or post to a Slack room substituting values such as the build URL and number into the message body.

To use Buildkite webhooks with Zapier create a new Zap and select Webhook.

Webtask

Webtask makes it easy to write Node.js powered backend code without having to run a server, and it supports cron (scheduled runs) and secure token storage (for things like API keys). You can use our LIFX webtask example to get started with processing webhooks using Webtask:

:node: Webtask.io webhook example application github.com/buildkite/lifx-buildkite-build-light-webtask