{"id":17148453,"url":"https://github.com/mavam/trac-hub","last_synced_at":"2025-04-13T11:42:00.608Z","repository":{"id":8733881,"uuid":"10408668","full_name":"mavam/trac-hub","owner":"mavam","description":":bookmark: Converts trac tickets to github issues.","archived":false,"fork":false,"pushed_at":"2022-01-12T22:49:56.000Z","size":194,"stargazers_count":13,"open_issues_count":11,"forks_count":18,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-04T15:43:08.782Z","etag":null,"topics":["github","issue-tracker","migration","trac"],"latest_commit_sha":null,"homepage":"http://mavam.github.io/trac-hub","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mavam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-31T16:25:06.000Z","updated_at":"2023-11-29T23:29:23.000Z","dependencies_parsed_at":"2022-09-17T16:50:46.113Z","dependency_job_id":null,"html_url":"https://github.com/mavam/trac-hub","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavam%2Ftrac-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavam%2Ftrac-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavam%2Ftrac-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavam%2Ftrac-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mavam","download_url":"https://codeload.github.com/mavam/trac-hub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248709487,"owners_count":21149178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["github","issue-tracker","migration","trac"],"created_at":"2024-10-14T21:28:43.136Z","updated_at":"2025-04-13T11:42:00.588Z","avatar_url":"https://github.com/mavam.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"trac-hub\n========\n\n**trac-hub** converts [trac](http://trac.edgewall.org/) tickets into github\nissues. To this end, it accesses trac's underlying database to create tickets\nand post the change history of each ticket as comments.\n\nSynopsis\n--------\n\nCopy the [example YAML configuration](config.yaml.example) and adapt it as\nneeded:\n\n    cp config.yaml.example config.yaml\n    vim config.yaml\n\nThereafter just invoke `trac-hub`:\n\n    ./trac-hub\n\nIf this fails with an error, make sure to have a look at the\n[Dependencies](#dependencies) section.\n\nBy default, trac-hub assumes the file `config.yaml` in the same directory as\nthe script. You can also specify the configuration file on the command line:\n\n    ./trac-hub -c foo.yaml\n\nAdd the `-v` flag for more verbose output:\n\n    ./trac-hub -v\n\nAdd the `-o` flag to only import the tickets that are not in a `closed` status:\n\n    ./trac-hub -o\n\nTo resume the migration at a given trac ticket ID, use `-s`:\n\n    ./trac-hub -s 42\n\nIf you want all trac comments/changes to be compiled into a single post on the\ngithub issue:\n\n    ./trac-hub -S\n\n*Note*: when converting your trac setup to github, it is prudent to first try\nthe migration into a test repository which you can delete afterwards. If this\nworked out fine and delivered the expected results, one can still aim the\nscript at the real repository.\n\nIssue numbers\n-------------\n\nBy default, trac-hub will verify that the created issue numbers match the\nticket IDs of the corresponding trac ticket and error-exit if the number is\noff.\n\nIf you need this behaviour, you should also disable user interactions by\nsetting **Limit to repository collaborators** under your repository settings.\nAlternatively, when migrating issues to a new repository, import the issues on\na test-repository and rename the repository to the final name when the import\nwent satisfactory.\n\nYou can disable this check by using the *fast* option:\n\n    ./trac-hub -F\n\nThis will also make your import much faster (but after the script has\nfinished, it can still take some time until the issues are created on github).\n\nUsing this option is obligatory, if you know that the ticket IDs will not\nmatch, e.g. because non-trac tickets already exist. In this case, you must\nalso specify the ID of the first ticket to be migrated (even if it is 1):\n\n    ./trac-hub -F -s 1\n\nTechnology\n----------\n\nIt uses uses github's new [issue import\nAPI](https://gist.github.com/jonmagic/5282384165e0f86ef105) to create issues\n\n- without hitting abuse detection warnings and getting blocked\n- without sending email notifications\n- without increasing your contribution count to ridiculous heights\n- much faster than with the [normal issues API](https://developer.github.com/v3/issues/)\n- with correct creation/closed date set\n- atomically without users being able to interfere in the creation of a single issue\n\nConfiguration\n-------------\n\nThe YAML configuration file contains four sections. The section `trac` includes\nall trac-related configuration options. The database URL follows the scheme\ndescribed [here](http://sequel.jeremyevans.net/rdoc/classes/Sequel.html#method-c-connect).\nIn order to use databases other than sqlite, you may have to add them to the\n`Gemfile`. For mysql databases, you should use the mysql2 adapter.\n\nThe section `github` includes the repository to migrate as well an API token\nwhich can be generated under [Settings -\u003e Personal Access\nTokens](https://github.com/settings/tokens).\n\nThe section `labels` allows for custom label mappings. Since github's issue\ntracker does not have a first-class notion of ticket priority, type, and\nversion information, trac-hub supports expressing these in the form of labels.\n\nThe section `users` contains a one-to-one mapping between trac usernames or\nemail addresses and github usernames.\n\nDependencies\n------------\n\nMake sure you have the bundler gem installed (`gem install bundler`).\nThereafter, you can install missing dependencies via `bundle install`.\n\nThe easiest way to install the dependencies locally is as follows:\n\n    bundle install --path vendor/bundle\n\nIn this case, you can execute the program by replacing `./trac-hub` above\nwith `bundle exec trac-hub`, e.g.:\n\n    bundle exec trac-hub -s 42\n\nLicense\n-------\n\ntrac-hub comes with a [BSD-style licence](COPYING).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmavam%2Ftrac-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmavam%2Ftrac-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmavam%2Ftrac-hub/lists"}