A utility that migrates backups from JIRA, Assembla and other sources to GitLab.
GitLab doesn't have any data import utility. GitLab might make one someday, but till that time only thing you've is GitLab API.
This solution leverages GitLab's API to migrate your data to a GitLab project. It's designed to be modular, extensible, and adaptable to different types of backup structures. This project also takes files/attachments into account.
Following are some of the assumptions the project makes about your backup:
- Your data is in one JSON file.
- All of your attachments/files are in one folder.
- The JSON structure contains arrays of following entities. Paths of those entities are configurable though.
- Issues
- Milestones
- Labels
- Notes (comments)
- Attachments
All issues, notes, and uploads are posted by a single user. This is because of limitations with GitLab API. As a workaround, the project will add annotations in descriptions of notes and issues, so original poster can be identified.
- Node
- NPM
- Clone the repo to your local machine.
cd <project root>
npm install
- Rename
configuration.template.js
toconfiguration.js
- Set your specific values to
configuration.js
- Run
npm start
Use issues tab under this repo to report any problems.
Contributions to this repo are welcome. Here are suggested steps:
- Pick an issue from the issues tab.
- Fork the project and clone locally.
- Create a new branch.
- Make your changes in the project.
- Commit and push.
- Create a Pull Request at this repo.