This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description
Redmine to Gitlab migrator
==========================

[![Build Status](https://travis-ci.org/oasiswork/redmine-gitlab-migrator.svg?branch=master)](https://travis-ci.org/oasiswork/redmine-gitlab-migrator)

Migrate code projects from Redmine to Gitlab, keeping issues/milestones/metadata

*Note: although certainly not bugfree, this tool has been used at @oasiswork
to migrate 30+ projects with 1000+ issues, and some attention is paid to
keeping data.*

Does
----

- Per-project migrations
- migration of issues, keeping as much metadata as possible
- your trackers become tags
- issue comments are kept and assigned to the right users
- issue final status (open/closed) is kept along with open/close date (not
detailed status history)
- issues assignations are kept
- keep issues numbers (ex: `#123`)
- keep issue/notes authors
- keep track of issue/notes original dates, but as comments
- keeps relations (although gitlab model for relations is simpler)
- Migration of Versions/Roadmaps
- contained issues
- status & due date

Does not
--------

- Migrate users, groups, and permissions (redmine ACL model is complex and
cannot be transposed 1-1 to gitlab ACL)
- Migrate repositories (piece of cake to do by hand, + redmine allows multiple
repositories per project where gitlab do not)
- Migrate wikis (because we don't use them at @oasiswork, feel free to contribute)
- Migrate the whole redmine installation , because namespacing is different in
redmine and gitlab
- Archive the redmine project for you
- Keep creation/edit dates as metadata
- Keep "watchers" on tickets (gitlab API v3 doe not expose it)
- Keep date/times as metadata
- Keep track of issue relations orientation (not such notion on gitlab)
- Remember who closed the issue
- Migrate tags ([redmine_tags](https://www.redmine.org/plugins/redmine_tags)
plugin), as they are not exposed in API

Requires
--------

- Python >= 3.4
- Admin token on redmine
- Admin token on gitlab
- No preexisting issues on gitlab project
- Already synced users (those required in the project you are migrating)


Let's go
--------

You can or can not use
[virtualenvs](http://docs.python-guide.org/en/latest/dev/virtualenvs/) that's
up to you.

Install it:

./setup.py install

You can then give it a check without touching anything:

migrate-rg issues --redmine-key xxxx --gitlab-key xxxx \
<redmine project="" url=""> <gitlab project="" url=""> --check

The `--check` here prevents to writing anything, it's available on all
commands.

migrate-rg --help

Migration process
-----------------

This process is for each project, **order matters**.

### Create the gitlab project

It doesn't neet to be named the same, you just have to record it's URL (eg:
*https://git.example.com/mygroup/myproject*)

### Create users

By-hand operation, project members in gitlab need to have same username as
members in redmine. Every member that interacted with the redmine project
should be added to the gitlab project.

### Migrate Roadmap

If you do use roadmap, redmine *versions* will be converted to gitlab
*milestones*. If you don't, just skip this step.

migrate-rg roadmap --redmine-key xxxx --gitlab-key xxxx \
https://redmine.example.com/projects/myproject \
http://git.example.com/mygroup/myproject --check

*(remove `--check` to perform it for real, same applies for other commands)*

### Migrate issues

migrate-rg issues --redmine-key xxxx --gitlab-key xxxx \
https://redmine.example.com/projects/myproject \
http://git.example.com/mygroup/myproject --check

Note that your issue titles will be anotated with the original redmine issue
ID, like *-RM-1186-MR-logging*. This anotation will be used (and removed) by
next step.

### Migrate Issues ID (iid)

You can retain the issues ID from redmine, **this cannot be done via REST
API**, thus it requires **direct access to the gitlab machine**.

So you have to log in the gitlab machine (eg. via SSH), and then issue the
commad with sufficient rights, from there:

migrate-rg iid --redmine --redmine-key xxxx --gitlab-key xxxx \
https://redmine.example.com/projects/myproject \
http://git.example.com/mygroup/myproject --check


### Import git repository

A bare matter of `git remote set-url && git push`, see git documentation.

Note that gitlab do not support multiple repositories per project, you'll have
to reorganize your stuff if you were using that feature of Redmine.

### Archive redmine project

If you want to.

You're good to go :).

Unit testing
------------

Use the standard way:

python setup.py test

Or use whatever test runner you fancy.
Release History

Release History

1.0.2

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
redmine-gitlab-migrator-1.0.2.tar.gz (10.1 kB) Copy SHA256 Checksum SHA256 Source Nov 30, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting