Skip to content

feat(import): add Plane CSV importer functionality#1061

Open
JulienKode wants to merge 2 commits intolinear:masterfrom
JulienKode:jka/import/plane-so
Open

feat(import): add Plane CSV importer functionality#1061
JulienKode wants to merge 2 commits intolinear:masterfrom
JulienKode:jka/import/plane-so

Conversation

@JulienKode
Copy link
Copy Markdown

@JulienKode JulienKode commented Mar 8, 2026

Plane CSV importer

Summary

Adds support for importing issues from Plane CSV exports into Linear. The importer handles Plane's current export format (Phase 3, Dec 2025+) which uses prettified headers and JSON-encoded arrays for list fields.

What it does

  • Parses Plane CSV exports with all supported fields: status, priority, labels, assignees, comments, estimates, dates, links, relations, cycles, modules
  • Maps Plane statuses to Linear workflow states dynamically (supports custom Plane states)
  • Maps Plane priorities (urgent/high/medium/low/none) to Linear priority levels (1-4, 0)
  • Imports comments with author and timestamp
  • Preserves metadata without direct Linear equivalents (parent issues, relations, links, cycles, modules) in the issue description
  • Filters out draft issues
  • Handles archived issues

Field mapping

Plane Linear
Name title
State Name status (dynamic mapping to backlog/unstarted/started/completed/canceled)
Priority priority (urgent=1, high=2, medium=3, low=4, none=0)
Assignees assigneeId (first assignee; extras in description)
Labels labels
Comments comments (with body, userId, createdAt)
Start Date startedAt
Target Date dueDate
Created At createdAt
Completed At completedAt
Archived At archived flag
Estimate estimate
Parent, Links, Relations, Cycles, Modules description (metadata preservation)

Testing

  • 45 unit tests following Given/When/Then structure
  • Shared test utilities in importers/__tests__/importerTestUtils.ts for reuse across future importer tests
  • Sample CSV fixture matching real Plane export format

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 8, 2026

⚠️ No Changeset found

Latest commit: 575b8c3

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

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.

1 participant