Connecting Linear

Drumroll syncs Linear cycles into your changelog. Each cycle becomes one entry - the cycle name as the title, a bulleted list of completed issues as the body, the cycle's end date as the publish date. OAuth-authorized, on-demand sync, read-only access.

If your team works in cycles on Linear, this is the lowest-friction way to publish "what shipped this sprint." Close out a cycle on Linear, click Sync now, the entry appears with every completed issue listed.

Step 1 - Authorize Linear

From your workspace integrations page, click Connect Linear. You'll be redirected to linear.app to authorize Drumroll. We request the minimum needed scope:

  • read - list your teams, cycles, and the issues inside each cycle. We never write to your Linear workspace.

Tokens are AES-256-GCM encrypted at rest before they ever touch our database. Linear's standard OAuth tokens don't expire, so the connection just stays connected. Disconnect any time - tokens are deleted immediately.

Step 2 - Pick a team

After authorizing, you'll see a single text input: Team key. Type the short identifier that appears in front of every issue:

  • ENG-127 → team key ENG
  • DESIGN-42 → team key DESIGN
  • PROD-9 → team key PROD

Case doesn't matter. Drumroll resolves the key to the underlying team ID once and caches both, so future syncs skip the lookup. The team must be one your authorizing Linear account can read.

Step 3 - Sync on demand

Click Sync now. Drumroll fetches every cycle on the team and creates one changelog entry per cycle that has at least one completed issue:

  • Title - the cycle name. If the cycle wasn't named, falls back to Cycle N where N is the cycle number.
  • Body - if the cycle has a description, that appears first. Then a Shipped this cycle heading followed by a bulleted list of every completed issue. Each bullet links back to the issue on linear.app.
  • Date - the cycle's completedAt if it has ended, otherwise endsAt (the planned end date).
  • Status - published for completed cycles whose endsAt is in the past. Active or upcoming cycles come in as drafts so you can polish the framing before they go live.
  • Tags - the entry is tagged release so you can filter it later.

How re-syncs behave

The dedupe key is the team key + cycle ID. Cycle IDs are stable UUIDs in Linear, so re-syncs are safe:

  • Renaming a cycle on Linear updates the existing entry - no duplicate.
  • Adding more completed issues to an active cycle and re-syncing updates the bulleted list in place.
  • Once an entry is published on Drumroll, re-syncs never demote it back to draft - even if the cycle's date changes.
  • Cycles with zero completed issues are skipped entirely so you don't get empty entries.

What's included in the body

Drumroll filters issues to those whose state type is completed at sync time. That maps to Linear's "Done" workflow states (or any custom state your team has marked as type=completed). Issues in Backlog, Todo, In Progress, or Cancelled are excluded.

Limits and constraints

  • linear.app only - self-managed Linear instances don't exist anyway.
  • Cycle-level entries only. Issue-level entries (one entry per shipped issue) is a separate integration we haven't built yet.
  • No automatic polling. Syncs are user-triggered from the integrations page.
  • No label/project filtering. Every completed issue in the cycle is included.

Disconnecting

Click Disconnect Linear on the integrations page. The access token is deleted immediately. Synced entries stay - they become regular entries you can edit or delete.