linear-jira enables state syncing between Linear and Jira to enable teams to use Linear while still maintaing the state in Jira for any other stakeholders. Primary direction of syncing is Linear -> Jira, but some Jira -> Linear syncing is available.
Configure the environment variables by copying .env.template
and modifying it to your needs.
IMPORTANT: Please use RELTEST
Jira project, and RELT
Linear team for any local development.
cp .env.template .env
Run a sync.
yarn dev
The syncing has the following mapping.
Linear | Jira | Linear -> Jira | Jira -> Linear |
---|---|---|---|
Team | Project | ✅ | TBD |
Project | Epic | ✅ | TBD |
Issue | Task | ✅ | ✅ |
Relations | Relations | ✅ | ❌ |
Sub-issue | Split-to relation | ✅ | ❌ |
Labels | Labels | TBD | TBD |
All the Linear issues and projects are synced to Jira issues. Linear issues and sub-issues are created as Jira tasks, while projects are created as epics.
The field of the issues is synced continously on any updates to the Linear issue.
- ✅ Title
- ✅ Description
- ✅ State
- ✅ Assignee
- ✅ Reporter
- ✅ Creator
- ✅/➖ Relations (blocks / duplicates / relates) (removals are not implemented)
- ✅/➖ Children (removals are not implemented)
- ✅/➖ Links (only Jira <-> Linear link is updated)
Issues (not Epics) created in Jira are created in Linear and are automatically managed by Linear in the future. If for some reason, you need to managed the ticket in Jira (e.g. assigning the ticket to a person outside of the team who's not using Linear), you can remove the managed-by-linear
label from the Jira ticket. At that point, Linear will have Managed by Jira
label. To reverse the action, simply remove the label from Linear.
- Cross-project / cross-team relations - primarily to avoid polluting any other projects by accident
- Relation removals - would require state persistence or comparing the entire state of both Linear and Jira
- Label syncing