tentwentyfour / remaim
Redmine to Phabricator Importer – migrates issues from Redmine to Maniphest using the Conduit API
Requires
- php: ^5.6 || ^7.0
- kbsali/redmine-api: ~1.0
- pimple/pimple: ~3.0
- symfony/yaml: ~3.0
Requires (Dev)
- bossa/phpspec2-expect: dev-master
- henrikbjorn/phpspec-code-coverage: dev-master
- mockery/mockery: ~0.9
- php-mock/php-mock-mockery: ^1.1
- phpspec/phpspec: ~3.0
- squizlabs/php_codesniffer: ~1.5
This package is not auto-updated.
Last update: 2022-07-09 15:10:37 UTC
README
Dependencies
You will need to have a copy of Phabricator's libphutil in your path. We assume that you have installed it (or arcanist) via your package manager and that libphutil sits in /usr/share/libphutil.
If such is not the case, you will have to adapt the path inside bin/remaim.
Installation
Clone the project from https://github.com/tentwentyfour/remaim, then run
composer install --optimize-autoloader
Usage
Note: All tasks and comments will be created by the user whose Phabricator API key you will be using. We recommend to create a bot account that has access to all projects on your Phabricator instance.
The tool currently also presumes that you have created user accounts for all your collaborators in Phabricator since the Conduit API does not allow to create new accounts.
Users will be looked up by their full names, so make sure your users have identical full names in both Redmine and Phabricator before launching the migration process.
- Copy remaim.yml-dist to remaim.yml and fill in your redmine and phabricator credentials
- Run
php bin/remaim
Note: If you're using an API key for redmine, use the token
key instead of user
and password
. Be advised though that, if you're using Basic Auth in front of your redmine installation, only user and password will work.
Running tests
./vendor/bin/phpspec run
If you have phpdbg
with 'phpdbg_start_oplog' support built-in, you can also run phpspec with it:
phpdbg -qrr vendor/bin/phpspec run
Note: to see full diffs of failing tests, run phpspec with the --verbose flag.
Contributing
Please see CONTRIBUTING.md for information on how you may contribute to this project.
FAQ
- Q: But, but, it's not entirely done yet, why are you releasing this half-done tool to the public?
- A: "Release early, release often" We believe the tool is in a state where many people can profit from using it and can adjust or extend its behavior with moderate effort. We've been successfully using it to migrate over 4000 issues including history and files. Plus, finishing ALL the things we would like to see would really take a long time, so we're hoping the community will pick this up, improve on it and send us plenty of PRs ;)
Changelog
- 0.4.1 – release 0.4 with tests fixed
- 0.4.0 – switched to
maniphest.search
to search for existing tickets and removed the need to force protocols for file downloads. Added support for parent_id journal entries. - 0.3.0 – introduces a new
Journal
class to handle the journal of actions on each Redmine issue. Each entry is handled separately and then converted into a Maniphest update.