Using ClickHouse as a GitHub webhook
Mark Needham
ClickHouse has always supported acting as a webhook endpoint, but version 25.12 adds a useful feature: HMAC-based message authentication. Now you can verify that incoming requests are actually from who you think they are before inserting any data. In this video, we set it up end to end using a real GitHub repository.
- Create a staging table that captures raw payloads and GitHub's HMAC signature from the request header
- Use a materialized view to validate each message using the new HMAC function — valid messages flow through, invalid ones get dropped
- Set up a restricted
webhook_receiveruser with minimal permissions (and optionally rate limits) for the endpoint - Walk through the full GitHub webhook configuration — payload URL, content type, and secret key
- Test the setup with real push events and verify the signature filtering works as expected