A Rust-based webhook server that forwards Buildkite pipeline events to Zulip channels.
- Go to your Zulip organization's settings
- Navigate to "Personal settings" > "Bots" > "Add a new bot"
- Select "Incoming webhook" as the bot type (this is the correct type for third-party integrations)
- Give your bot a name (e.g., "Buildkite Bot") and create it
- Note down the bot email and API key from the bot's settings
export ZULIP_BOT_EMAIL="[email protected]"
export ZULIP_BOT_API_KEY="your-bot-api-key"
export ZULIP_SERVER_URL="https://your-org.zulipchat.com"
export ZULIP_STREAM="buildkite" # Channel/stream name to post to
# Using environment variables
cargo run -- server
# Or with command line arguments
cargo run -- server \
--zulip-bot-email "[email protected]" \
--zulip-bot-api-key "your-bot-api-key" \
--zulip-server-url "https://your-org.zulipchat.com" \
--zulip-stream "buildkite" \
--port 3000
- Go to your Buildkite pipeline settings
- Add a webhook with URL:
https://your-server.com/webhook
- Select the events you want to forward (the bot supports all Buildkite events - see supported events section below)
Build Started (with commit message):
π Build #42 started
> Add new feature for user authentication
Build Started (no commit message):
π Build #42 started
Build Finished:
β
Build #43 passed
Job Finished:
β
Job 'Unit Tests' passed
Complete Build Flow in Topic My Pipeline - Build #42
:
π Build #42 started
> Fix critical security vulnerability
β
Job 'Unit Tests' passed
β Job 'Linting' failed
β Build #42 failed
Note: All build numbers and job names are clickable links to Buildkite