Skip to main content

convert Trac tickets to Github issues

Project description

Tratihubis converts Trac tickets to Github issues by using the following steps:

  1. The user manually exports the Trac tickets to convert to a CSV file.
  2. Tratihubis reads the CSV file and uses the data to create Github issues and milestones.


To install tratihubis, use pip or easy_install:

$ pip install tratihubis

If needed, this also installs the PyGithub package.


Information about Trac tickets to convert has to be provided in a CSV file. To obtain this CSV file, create a new Trac query using the SQL statement stored in query_tickets.sql and saving the result by clicking “Download in other formats: Comma-delimited Text” and choosing for example /Users/me/mytool/tickets.csv as output file.

Next create a config file to describe how to login to Github and what to convert. For example, you could store the following in ~/mytool/tratihubis.cfg:

user = someone
password = secret
repo = mytool
tickets = /Users/me/mytool/tickets.csv

Then run:

$ tratihubis ~/mytool/tratihubis.cfg

This tests that the input data and Github information is valid and writes a log to the console describing which operations would be performed.

To actually create the Github issues, you need to enable to command line option --really:

$ tratihubis --really ~/mytool/tratihubis.cfg

Be aware that Github issues and milestones cannot be deleted in case you mess up. Your only remedy is to remove the whole repository and start anew. So make sure that tratihubis does what you want before you enable --really.


Currently tratihubis only converts tickets with their descriptions and milestones. It also creates milestones as needed.

Github issues get the same owner as the Trac ticket. This only works if the Trac user has the same name on Github. If this is not the case, manually edit the owner and reporter columns in the tickets CSV.

The following information is not converted:

  • Github issues remain open even if the Trac ticket has been closed.
  • Trac comments are discarded instead of converted to Github comments.
  • Trac ticket details on type and resolution are discarded instead of converted to Github labels.
  • Trac Wiki markup remains instead of being converted to Github Markdown.

If you want to implement any of these features, create a fork and open a pull request at


Copyright (c) 2012, Thomas Aglassinger. All rights reserved. Distributed under the BSD License.


Version 0.1, 2012-05-01

  • Initial release.

Project details

Release history Release notifications

History Node


History Node


History Node


History Node


This version
History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date (17.8 kB) Copy SHA256 hash SHA256 Source None May 1, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page