Install the CLI:
yarn global add @linear/import
or
npm i -g @linear/import
Run interactive importer:
linear-import
It's recommended to only import open issues to keep your Linear account more manageable.
Open GitHub issues can be imported with your personal access token from GitHub's API.
Supported fields:
- Title
- Description
- Labels
- (Optional) Comments
Jira project can be imported into a Linear team from the CSV export file.
The following fields are supported:
Summary- Issue titleDescription- Converted into markdown and used as issue descriptionURL- URL of Jira issuePriority- Issue priorityIssue key- Used to build backlink to original Jira issue, and included as a_jira_issue_key: {jirakey}label. The label is useful in case you lose access to Jira before re-establishing ticket relationships in Linear.Issue Type- Added as aType: {jiratype}label- (Optional)
Release- Added as a_jira_release: {releasename}label Labels- Added as{Label}labelsAssignee- Added as a_jira_assignee: {username}labelCreator- Added as a_jira_creator: {username}labelCreated- Added as a_jira_created: {datetime}labelIssue Id(hidden) - Added as a_jira_issue_id: {jiraid}label only for Sub-task type tickets. The label is useful in case you lose access to Jira before re-establishing ticket relationships in Linear.Parent Id(hidden) - Added as a_jira_parent_id: {jiraid}label. The label is useful for re-establishing parent-child links in Linear.Outward issue link (blocks)- Added as a_jira_blocks_key: {jirakey}labelOutward issue link (relates)- Added as a_jira_related_key: {jirakey}labelOutward issue link (duplicate)- Added as a_jira_dupe_key: {jirakey}labelWatchers- Added as a_jira_watcher_key: {username}label only when different from both the ticket creator and assignee
Filter All Issues in Linear by selecting all _jira_assignee labels. Go through the issues one-by-one and assign them, and remove the _jira_assignee label.
If you want to maintain some ticket relationships, you can walk through the issues in Linear one-by-one. For example, in Linear, you can filter All Issues by checking boxes for all labels including _jira_parent_key (better than filtering by Type: Sub-task because this will show children of Epics too). Once filtered, you can go through issue-by-issue and create links to parents (you might have to open the original Jira ticket to get the parent ticket name), and then remove the _jira_parent_key label.
Asana projects can be imported into a Linear team from the CSV export file.
Following fields are supported:
Name- Issue titleNotes- Converted into markdown and used as issue descriptionPriority- Issue priorityTags- Added as a labelAssignee- Issue assignee
Pivotal Tracker projects can be imported into a Linear team from the CSV export file. It only imports chores, features, and bugs.
Following fields are supported:
Title- Issue titleDescription- Converted into markdown and used as issue descriptionLabels- Added as a labelOwned By- Story ownerURL- URL of Pivotal Tracker storyCreated at- Preserves the story creation date
Clubhouse workspaces can be imported into a Linear team from the CSV export file. It only imports chores, features, and bugs.
Following fields are supported:
Name- Issue titleDescription- Clubhouse markdown formatted descriptionTasks- Appended to the descriptionExternal Tickets- Appended to the descriptionState- Mapped to the most similar Linear statusType- Added as a labelTags- Added as labelsOwners- Story owner (only the first is preserved)URL- URL of Clubhouse story, also appended to the descriptionCreated at- Preserves the story creation date
Trello board can be imported into a Linear team from the JSON export file, which can be obtained by going into Board → Show Menu → More → Print and Export → Export as JSON.
Following fields are supported:
Name- Issue titleDescription- Trello markdown formatted descriptionURL- URL of Trello cardLabels- Added as a label
- Automatic image uploads
- Assignees (pick from a list)
- Created at (requires API change)