Skip to content

feat: Linear webhook connector (real-time events, replace polling) #124

Closed

Description

@c-h-

Problem

Linear events currently use @orgloop/connector-linear which polls every 5 minutes. GitHub was switched to real-time webhooks via @orgloop/connector-github-webhook (mono PR #9222) and it's working well — events arrive in seconds instead of minutes.

Proposal

Build @orgloop/connector-linear-webhook following the same pattern as the GitHub webhook connector:

  1. Receive Linear webhook POSTs via Tailscale Funnel endpoint
  2. Verify webhook signature (Linear uses HMAC-SHA256 via a signing secret)
  3. Parse the webhook payload and emit OrgLoop events (resource.changed, etc.)
  4. Map Linear webhook event types to the same event schema the polling connector emits, so existing routes don't need changes

Linear Webhook Details

  • Docs: https://developers.linear.app/docs/graphql/webhooks
  • Linear webhooks send action (create/update/remove) + type (Issue, Comment, etc.) + full resource data
  • Signing: Linear-Signature header, HMAC-SHA256 of request body with the webhook signing secret
  • Webhook management: via Linear Settings → API → Webhooks, or via GraphQL API (webhookCreate mutation)

Reference Implementation

@orgloop/connector-github-webhook in the orgloop repo — same architecture: HTTP handler, signature verification, event emission, connector config in YAML.

Migration

Once built:

  • Update connectors/linear.yaml in mono/orgloop/charlie-mac-studio to use the webhook connector
  • Register the Linear webhook URL in Linear's settings
  • Remove the polling interval config
  • Existing routes (ticket-auto-research, etc.) should work unchanged if the event schema matches

Activity

  1. added a commit that references this issue on Mar 13, 2026
    9dbd5d1
  2. added a commit that references this issue on Mar 13, 2026
    972089f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions