Ragnarock
Integrations

Linear integration

Connect and sync Linear issues with a Ragnarock project.

Linear connects at two levels: organization OAuth and per-project mapping.

Setup

Connect Linear under Organization → Integrations (/dashboard/organization/integrations). API: POST /integrations/linear with OAuth callback handling.

Open the project Linear page (/dashboard/projects/{projectId}/linear).

Link the Ragnarock project to a Linear team/project — POST /projects/:projectId/linear/link.

Configure sync settings — PATCH /projects/:projectId/linear/settings.

Run import or export — POST .../linear/import or POST .../linear/export.

API surface

MethodPathPurpose
GET/integrations/linear/teamsList Linear teams
GET/integrations/linear/projectsList Linear projects
GET/projects/:projectId/linearSync status
POST/projects/:projectId/linear/syncTrigger sync
GET/projects/:projectId/linear/sync-runsHistory
POST/webhooks/linearInbound webhook (backend)

Sync behavior

  • Issues link to Ragnarock requirements/tasks via LinearIssueLink records.
  • Sync runs are logged in LinearSyncRun for debugging.
  • Outbound calls use Linear GraphQL (linear-graphql.service.ts).

Avoid editing the same issue field in both systems simultaneously. Pick one system as canonical for status and assignee.

Troubleshooting

SymptomCheck
OAuth redirect errorBETTER_AUTH_URL, Linear app callback URLs
Empty team listOrg integration token expired — reconnect
Webhook not firingPublic URL reachable; webhook secret in backend env
Stale issuesRun manual sync; inspect latest sync-runs

See Common issues and GitHub for repo linking (often used alongside Linear).

On this page