{"id":20838020,"url":"https://github.com/fusonic/redmine-import","last_synced_at":"2026-04-27T07:32:02.686Z","repository":{"id":66295118,"uuid":"93138303","full_name":"fusonic/redmine-import","owner":"fusonic","description":null,"archived":false,"fork":false,"pushed_at":"2017-09-14T08:24:06.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-12-27T17:29:15.938Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fusonic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-06-02T07:18:31.000Z","updated_at":"2017-10-12T00:34:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ab028a3-164b-4222-bdee-619ea85290b1","html_url":"https://github.com/fusonic/redmine-import","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fusonic/redmine-import","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusonic%2Fredmine-import","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusonic%2Fredmine-import/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusonic%2Fredmine-import/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusonic%2Fredmine-import/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fusonic","download_url":"https://codeload.github.com/fusonic/redmine-import/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusonic%2Fredmine-import/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32327701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T01:09:10.525Z","updated_at":"2026-04-27T07:32:02.678Z","avatar_url":"https://github.com/fusonic.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Redmine import for GitLab\n=========================\n\nPHP console application to import Redmine tickets of one or multiple projects into a GitLab issue tracker. Retains\noriginal ticket numbers by **overwriting** existing GitLab issues and inserting **dummy** issues.\n\n  * Tested with Redmine installation that used “GitRemote” VCS integration.\n  * Dummy issues will be created as confidential.\n  * Dummy issues will receive the label “import/skipped”.\n  * Private issues notes will become **public** (see below).\n  * **Does not** import more than 100 milestones (pagination not implemented when accessing GitLab API)\n  * **Does not** import child issues/tasks as we do not use them at Fusonic.\n  * **Does not** import watchers as they are not exposed/accessible using GitLab API.\n  * **Does not** import issue relation types (e.g. “#1 _blocks_ #2”) as GitLab issue links do not support them.\n\n## Usage\n\nFirst, you need to create a config file containing access keys, assignee mapping, and mapping for Redmine ticket meta\ndata (tracker, status, priority, custom fields). See `app/config/sample.json`. A JSON schema can be found\n`app/config/schema.json`. The config file MUST conform to that schema.\n\nWe recommend to use numeric project IDs **only**. GitLab's API does sometimes contain bugs regarding encoding/decoding\nof the alphanumeric project name. Will eventually lead to API responses with status code 404. \n\nThen, run the import command:\n\n```bash\n$ bin/console do:import\n```\n\nIf the import crashes (because GitLab is down or due to network problems, for example) you can perform a partial import\nand skip already imported tickets using the `--first-ticket-number` option:\n\n```bash\n$ bin/console do:import --first-ticket-number=1337\n```\n\n## User mapping\n\nFind your own user ID via the GitLab API while you are logged in to your GitLab account:\n\n```\nhttps://gitlab.com/api/v4/users?username=allgaeuer.fabian\n```\n\nRedmine assignees without a corresponding GitLab user ID are discarded. Issues will then be created without an assignee.\n\n## Private issue notes\n\nRedmine does not expose via API whether a issue note is private or not. We therefore recommend to export and delete all\nprivate issue notes from Redmine's database prior performing the import:\n\n```sql\nSELECT * FROM journals WHERE private_notes = 1\n```\n\n## Why another import tool?\n\nThis application has been used at [Fusonic](https://www.fusonic.net/) to import over 2600 tickets and nearly 40 versions\ninto an **existing** GitLab repository. We were using GitLab and Redmine parallel before we decided to fully move to\nGitLab. As a result, new milestones were created in both GitLab (to set target versions on merge requests) **and** in\nRedmine (to set target versions on tickets).\n\nAll existing import tools were not able to import data into an existing GitLab repository, and they require raw DB\naccess to retain original ticket numbers (which is impossible when using [gitlab.com](https://gitlab.com/)).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffusonic%2Fredmine-import","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffusonic%2Fredmine-import","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffusonic%2Fredmine-import/lists"}