# Feature JIM-44 - Migrate sprint assignments of work packages including required sprints and sprint attributes

Project: Stream Jira to OpenProject data Migrator
Status: in development
URL: https://community.openproject.org/work_packages/JIM-44

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Immediate |
| Target versions | 18.0.0 |
| Sprint |  |
| Backlog bucket |  |
| Votes |  |
| List | RM Jira exit, RM Jira Migrator |
| Roadmap | 2026 Q4 |
| Relevance | Showstopper — Go-Live Blocker |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

_No work packages_

## Bugs and other work packages

_No work packages_

## Technical Details

| Attribute | Value |
| --- | --- |
| Module | Integrations / Jira |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan | Community (COM) |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee | Andrej Sandorf |
| Accountable | Wieland Lindenthal |
| Product manager | Kristine Jetzke |
| Developers | OP Dev Pro Team |
| Designer | Marc Alcobé |
| Ordered by |  |
| Signed off by |  |
| Interest by | Black (37919), Home (224196000003952096) |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work | 12d 0h |
| Labor costs |  |

## Description

**As** a migrator of Jira projects to OpenProject  
**I want to** maintain sprints and their assigned issues when importing work items  
**so that** I don&#x27;t lose all the planning and thinking that went into sprint planning

**Acceptance criteria**

*   The sprint assignments of each Jira issue are migrated
    
*   All sprints referenced by migrated Jira issues are created as OpenProject sprints. Note that it is sufficient for this step to create the bare minimum of the Sprint object.
    
*   Sprint name, state, start date, finish date, activation date, completion date and goal are taken over:
    
    *   `future` becomes `in planning`, `active` stays `active`, `closed` becomes `completed`
        
    *   `startDate` and `endDate` are migrated, `activatedDate` becomes the started-at timestamp, `completeDate` the completed-at timestamp
        
    *   the Jira sprint goal becomes the sprint goal of the owning project, truncated to 500 characters
        
    *   owning project is the project with the most assigned work packages. On a tie, alphabetical order of the Jira keys decides which one gets ownership
        
*   Every imported work package is assigned to the sprint it is currently in in Jira. When a Jira issue lists several sprints, the current one is used: the single open (active or future) sprint, or, when all are closed, the one completed last.
    
*   The backlogs module is enabled in every project that owns or receives sprints.
    
*   Reverting an import run removes the sprints
    

**Permissions and visibility considerations**

*   _To whom is this feature visible?_
    
    *   The import itself is visible only to administrators, &nbsp;like the rest of the Jira Migrator.
        
    *   Imported sprints are visible to any user with `view_sprints` in a project that owns the sprint. The `JiraMember` role created by the import is extended with `view_sprints` and `show_board_views` so imported members see their sprints. Moving work packages between sprints (`manage_sprint_items`) is not granted, since it requires `edit_work_packages`, which the role does not have.
        
*   _When is it not visible?_
    
    *   When the Jira instance has no usable Agile API, for instance Jira Core without Jira Software or an expired Jira Software license, or the token owner cannot see any board. No sprints are created; the import completes and only logs a warning.
        
    *   Kanban-only projects have no sprints of their own; their issues keep sprints only when they sit in a sprint of another board.
        
    *   Sprint sharing beyond the import&#x27;s own assignment, and more than one active sprint per project, touch Enterprise-gated project settings. 
        

**Out of scope**

*   Boards themselves, board columns, swimlanes, quick filters, WIP limits and the estimation statistic. Boards are fetched only to discover sprints and to resolve ownership.
    
*   Sprint reports, burndown and velocity history.
    
*   Retaining every sprint an issue ever belonged to. Only the current sprint is assigned; the rest stays visible in the imported history.
    
*   Backfilling `work_package_journals.sprint_id` so historical sprint moves become real journal diffs.
    
*   A `/rest/agile/1.0/sprint/{sprintId}/issue` fallback for projects that hide the Sprint field in their Field Configuration. Those projects get their sprints but not their assignments.
    
*   Writing project `sprint_sharing` settings.
    
*   Epic links, story points and Jira ranking, which are tracked separately.
