Skip to content

[Feature][Linear] Add Linear (linear.app) data source plugin #8901

@eduardoarantes

Description

@eduardoarantes

Search before asking

  • I had searched in the issues and found no similar feature requirement.

Use case

As a team that tracks work in Linear (linear.app), I want DevLake to collect our Linear data so I can analyze engineering throughput, lead/cycle time, sprint (cycle) progress, and status changelogs alongside our other tools — without exporting data by hand. Today DevLake has no Linear integration.

Description

Add a first-class Linear data source plugin, following DevLake's standard 3-stage ETL and framework helpers:

  • Collect (GraphQL → _raw_linear_*) using the async GraphQL client with rate-limit pacing; incremental collection via a server-side updatedAt filter.
  • Extract (_raw_linear_*_tool_linear_*).
  • Convert (_tool_linear_* → domain tables).

Scope = Linear Teamticket.Board. Auth = personal API key. Status is mapped deterministically from WorkflowState.type (triage,backlog,unstarted → TODO; started → IN_PROGRESS; completed,canceled → DONE).

Domain mappings:

  • Team → boards
  • Issues → issues + board_issues + issue_assignees
  • Comments → issue_comments
  • Labels → issue_labels
  • Cycles → sprints + sprint_issues
  • Issue history → issue_changelogs (+ lead/cycle time derived from in-progress→done transitions)
  • Users → accounts

Also includes config-ui registration (connection form + Teams data scope via remote-scopes) and a Grafana dashboard (grafana/dashboards/Linear.json).

Related issues

Implemented by PR #8900.

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions