Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLI
Assigneeskeeb

Relationships

#716 Support pluggable webhook signature verification schemes (Linear, Stripe, generic)

Opened by bixu · 6/20/2026· Shipped 6/20/2026

swamp serve --webhook today only accepts GitHub-style signatures: header X-Hub-Signature-256 with value sha256=<hex> of HMAC-SHA256(body, secret). This blocks integration with any other webhook provider.

Real-world providers we'd want to integrate:

  • Linear — header Linear-Signature, value is <hex> (no prefix) of HMAC-SHA256(body, secret)
  • Stripe — header Stripe-Signature, value is t=<timestamp>,v1=<hex> of HMAC-SHA256(timestamp + '.' + body, secret) with optional timestamp tolerance
  • Slack — header X-Slack-Signature, value is v0=<hex> of HMAC-SHA256('v0:' + timestamp + ':' + body, secret), plus X-Slack-Request-Timestamp
  • Generic — single-header HMAC-SHA256 with configurable header name and prefix

Suggested syntax

swamp serve --webhook '/hooks/linear:my-workflow:$SECRET:linear'
swamp serve --webhook '/hooks/stripe:my-workflow:$SECRET:stripe'
swamp serve --webhook '/hooks/github:my-workflow:$SECRET'   # default stays github
swamp serve --webhook '/hooks/custom:my-workflow:$SECRET:generic:X-Signature:sha256='

Default to github (current behavior) for backward compatibility. The 4th field selects the verifier; the 5th and 6th (for generic) configure header name and value prefix.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 3 MOREPR_MERGED+ 1 MORECONTRIBUTOR_NOTIFIED

Shipped

6/20/2026, 8:13:56 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
keeb assigned keeb6/20/2026, 5:38:37 PM
Editable. Press Enter to edit.

keeb commented 6/20/2026, 8:14:04 PM

Thanks @bixu for reporting this! The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.