The problem
Moving issue information between systems can involve repetitive copying and decisions about how fields correspond.
The approach
The source reads a Jira XML export, converts it into typed data and prepares GitHub issue titles and bodies.
What is available
An inspectable source example of data mapping and API integration. It was reviewed statically, not run against live accounts.
From exported data to an API request
The importer reads a Jira XML file and uses xml-js to convert it into a JavaScript data structure. TypeScript interfaces describe the export shape separately from the main import flow. The configured GitHub repository is then queried for existing issues.
The mapping is deliberately small: the Jira title becomes the GitHub title, while the body combines a summary with a link back to Jira. This makes the transformation easy to inspect; it does not represent a complete migration of comments, attachments, history or every Jira field.
Previewing the creation step
A configuration flag selects a dry-run branch that prints the titles it would create instead of calling the issue-creation method. That separation makes the write step visible to someone reviewing an import. It is not a transactional rollback or evidence that a production migration has been tested.
The code compares lowercased titles with those returned from GitHub. This is a simple duplicate check, not a durable identity mapping: matching titles can describe different issues, and renamed items may need separate handling. Pagination, detailed error handling and target-system compatibility need review before operational use.
What this demonstrates
The useful engineering example is the path from an external export format to a small, inspectable API payload, with data interfaces and a separate preview branch. The current source also makes its limitations visible. It is personal open-source work rather than a commercial NZHost case study; no time-saving metric or customer result is claimed.
Read the import flow at the reviewed revision and the repository instructions. Source review on 13 October 2026 did not include installation, authentication or execution against Jira/GitHub.
← All project references