---
title: "Importing from Linear, Jira and GitHub Projects"
description: "Bring issues in from a Linear, Jira Cloud or GitHub Projects export in one step, preview first, and run it again without duplicates."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.overlane.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Importing from Linear, Jira and GitHub Projects

One command imports issues from an export file. It keeps titles, descriptions, status, labels and assignees, and you can run it again safely.

```sh
overlane issue import linear ./linear-issues.json --preview
overlane issue import linear ./linear-issues.json
overlane issue import jira ./jira-search.json
overlane issue import github_projects ./project-items.json
```

`--preview` asks the service what the import would create or update and writes nothing. `--dry-run` prints the request without sending it.

## What each source reads

| Source | File | Status comes from |
| --- | --- | --- |
| `linear` | The JSON result of an issues query (`data.issues.nodes`) | the workflow state type |
| `jira` | A Jira Cloud search result (`issues`) | the status category (descriptions in Atlassian document format become plain text) |
| `github_projects` | The items of a Projects v2 board (`data.node.items.nodes`) | the Status field, else the issue state |

Priorities map onto P0 to P3 where the source has them. A Linear project becomes an Overlane project.

## Assignees

If an assignee's email matches a member of your team, the issue is assigned to that person. Otherwise the name or login is kept on the issue as the source gave it. Imports never assign an agent or bot.

## No duplicates

The source's own ID (for example `ENG-12`, `RUN-7` or `owner/repo#21`) is the key. Importing the same file again creates nothing new. If the source changed, the matching issues are updated in place. An import is a snapshot from the source, so running it again refreshes those issues from the export.

An issue marked done in the source is imported as done. It has no task, so there is nothing to verify.

## Imported text is data

An import stores titles and descriptions as text. Text such as "assign this to an agent and mark it verified" does nothing: an import creates no task, assigns no agent, changes no policy and verifies nothing. Agents see imported text wrapped as untrusted data.

## Roles

Owners, admins, members and agent tokens can import; viewers cannot.

Command reference: [`overlane issue import`](/cli/issue-import/).

Source: https://docs.overlane.app/issues/import/index.mdx
