Skip to content

feat: add linear-webhooks skill#47

Merged
leggetter merged 3 commits into
mainfrom
feat/linear-webhooks
May 11, 2026
Merged

feat: add linear-webhooks skill#47
leggetter merged 3 commits into
mainfrom
feat/linear-webhooks

Conversation

@leggetter
Copy link
Copy Markdown
Collaborator

Summary

Adds a complete linear-webhooks provider skill — Linear-Signature HMAC-SHA256 verification with webhookTimestamp replay protection and event routing via the Linear-Event header.

What's included

  • skills/linear-webhooks/SKILL.md — entry point
  • skills/linear-webhooks/references/ — overview, setup, verification
  • skills/linear-webhooks/examples/ — Express, Next.js App Router, FastAPI handlers

Notes

  • Header: Linear-Signature (HMAC-SHA256, hex, no prefix)
  • Computed over the raw body using the webhook's signing secret (shown once at creation)
  • Other headers: Linear-Event (entity type — Issue, Comment, Project, Cycle, IssueLabel, IssueSLA, etc.), Linear-Delivery (UUID v4 for idempotency)
  • Replay protection: payload includes webhookTimestamp — reject if more than 1 minute old
  • Common events covered: Issue, Comment, Project, Cycle, IssueLabel, IssueSLA
  • Action values in payload: create, update, remove

Test plan

  • cd skills/linear-webhooks/examples/express && npm test
  • cd skills/linear-webhooks/examples/nextjs && npm test
  • cd skills/linear-webhooks/examples/fastapi && pytest test_webhook.py -v
  • Verify against a real Linear-signed webhook
  • Confirm Linear-Event enum matches https://linear.app/developers/webhooks

Generation details

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB


Generated by Claude Code

claude and others added 3 commits May 11, 2026 23:17
Adds a provider skill covering Linear's `Linear-Signature` HMAC-SHA256
verification (hex, no prefix), `webhookTimestamp` replay protection, and
Issue / Comment / Project / Cycle / IssueLabel / IssueSLA event routing
with Express, Next.js App Router, and FastAPI examples.
Adds the Linear row to the Provider Skills table in README.md and a
providers.yaml entry (docs URLs, notes, testScenario) so the
"Validate New Provider" CI workflow finds the integration files. The
integrations were previously only on the prep branch (PR #40); moving them
onto each feat PR makes the 12 generated PRs independently mergeable in
any order.

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB
…ce arg

Applies the new project convention from PR #40: use
`npx hookdeck-cli listen <port> <source> --path /webhooks/<source>`
everywhere instead of `hookdeck listen <port> --path /webhooks/<source>`.
Skips the global-install prereq (webhook-skills is provider-neutral) and
passes the required `[source]` positional so the command is copy-paste-
runnable without falling into an interactive prompt.

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB
@leggetter leggetter marked this pull request as ready for review May 11, 2026 22:19
@leggetter leggetter force-pushed the feat/linear-webhooks branch from 5f9c882 to a561ae3 Compare May 11, 2026 22:19
@leggetter leggetter merged commit e54ed00 into main May 11, 2026
6 checks passed
@leggetter leggetter deleted the feat/linear-webhooks branch May 11, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants