{
"info": {
"author": "Thomas Aglassinger",
"author_email": "roskakori@users.sourceforge.net",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Topic :: Software Development :: Bug Tracking"
],
"description": "Tratihubis converts Trac tickets to Github issues by using the following steps:\n\n1. The user manually exports the Trac tickets to convert to a CSV file.\n2. Tratihubis reads the CSV file and uses the data to create Github issues and milestones.\n\n\nInstallation\n============\n\nTo install tratihubis, use ``pip`` or ``easy_install``::\n\n $ pip install tratihubis\n\nIf necessary, this also installs the `PyGithub `_ package.\n\n\nUsage\n=====\n\nInformation about Trac tickets to convert has to be provided in a CSV file. To obtain this CSV file, create a\nnew Trac queries using the SQL statement stored in\n`query_tickets.sql `_ and\n`query_comments.sql `_. Then\nexecute the queries and save the results by clicking \"Download in other formats: Comma-delimited Text\" and\nchoosing for example ``/Users/me/mytool/tickets.csv`` and ``/Users/me/mytool/comments.csv`` as output files.\n\nNext create a config file to describe how to login to Github and what to convert. For example, you could\nstore the following in ``~/mytool/tratihubis.cfg``::\n\n [tratihubis]\n user = someone\n password = secret\n repo = mytool\n tickets = /Users/me/mytool/tickets.csv\n comments = /Users/me/mytool/comments.csv\n\nThen run::\n\n $ tratihubis ~/mytool/tratihubis.cfg\n\nThis tests that the input data and Github information is valid and writes a log to the console describing\nwhich operations would be performed.\n\nTo actually create the Github issues, you need to enable to command line option ``--really``::\n\n $ tratihubis --really ~/mytool/tratihubis.cfg\n\nBe aware that Github issues and milestones cannot be deleted in case you mess up. Your only remedy is to\nremove the whole repository and start anew. So make sure that tratihubis does what you want before you\nenable ``--really``.\n\nMapping users\n-------------\n\nIn case the Trac users have different user names on Github, you can specify a mapping. For example::\n\n users = johndoe: jdoe78, *: me\n\nThis would map the Trac user ``johndoe`` to the Github user ``jdoe78`` and everyone else to the user ``me``.\nThe default value is::\n\n users = *:*\n\nThis maps every Trac user to a Github user with the same name.\n\nMapping labels\n--------------\n\nGithub labels somewhat mimic the functionality Trac stores in the ``type`` and ``resolution`` field of\ntickets. By default, Github supports the following labels:\n\n* bug\n* duplicate\n* enhancement\n* invalid\n* question\n* wontfix\n\nTrac on the other hand has a ``type`` field which by default can be:\n\n* bug\n* enhancement\n* task\n\nFurthermore closed Trac tickets have a ``resolution`` which, among others, can be:\n\n* duplicate\n* invalid\n* wontfix\n\nThe ``labels`` config option allows to map Trac fields to Github labels. For example::\n\n labels = type=defect: bug, type=enhancement: enhancement, resolution=wontfix: wontfix\n\nHere, ``labels`` is a comma separated list of mappings taking the form\n``=:``.\n\nIn case types or labels contain other characters than ASCII letters, digits and underscore (_), put them\nbetween quotes::\n\n labels = type=\"software defect\": bug\n\n\nAttachments\n-----------\n\nYou can find some notes on this in `issue #19 `: Add\ndocumentation for ``attachmentsprefix``.\n\n\nLimitations\n===========\n\nThe author of Github issues and comments always is the user specified in the config, even if a different\nuser opened the original Trac ticket or wrote the original Trac comment.\n\nGithub issues and comments have the current time as time stamp instead if time from Trac.\n\nGithub issue descriptions contains the raw Trac Wiki markup, there is no translation to Github markdown.\n\nThe due date of Trac milestones is not migrated to Github milestones, so when the conversion is done, you\nhave to set it manually.\n\nTrac Milestone without any tickets are not converted to Github milestone.\n\n\nSupport\n=======\n\nIn case of questions and problems, open an issue at .\n\nTo obtain the source code or create your own fork to implement fixes or improvements, visit\n.\n\n\nLicense\n=======\n\nCopyright (c) 2012-2013, Thomas Aglassinger. All rights reserved. Distributed under the\n`BSD License `_.\n\n\nChanges\n=======\n\nVersion 0.5, 2013-02-13\n\n(Contributed by Steven Di Rocco)\n\n* Added support for file attachments.\n* Added work around for information lost due GitHub API limitations:\n * Added trac commenter and date at the top of each comment.\n * Added automatic comment to each isseu showing original author, date authored, and last modification date.\n* Fixed API calls to work with PyGithub 1.8.\n\nVersion 0.4, 2012-05-04\n\n* Added config option ``labels`` to map Trac status and resolution to Github labels.\n\nVersion 0.3, 2012-05-03\n\n* Added config option ``comments`` to convert Trac ticket comments.\n* Added closing of issue for which the corresponding Trac ticket has been closed already.\n* Added validation of users issues are assigned to. They must have an active Github user.\n\nVersion 0.2, 2012-05-02\n\n* Added config option ``users`` to map Trac users to Github users.\n* Added binary in order to run ``tratihubis`` instead of ``python -m tratihubis``.\n* Changed supposed issue number in log to take existing issues in account.\n\nVersion 0.1, 2012-05-01\n\n* Initial release.",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://pypi.python.org/pypi/tratihubis/",
"keywords": "trac github ticket issue convert migrate",
"license": "BSD License",
"maintainer": null,
"maintainer_email": null,
"name": "tratihubis",
"package_url": "https://pypi.org/project/tratihubis/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/tratihubis/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://pypi.python.org/pypi/tratihubis/"
},
"release_url": "https://pypi.org/project/tratihubis/0.5/",
"requires_dist": null,
"requires_python": null,
"summary": "convert Trac tickets to Github issues",
"version": "0.5"
},
"last_serial": 800902,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "2e8f4ffec7dde169c7b7970ab1b7601b",
"sha256": "d154cda50195892f46075d411410b87b1642c4e363ed869946fc0645390cea73"
},
"downloads": -1,
"filename": "tratihubis-0.1.zip",
"has_sig": false,
"md5_digest": "2e8f4ffec7dde169c7b7970ab1b7601b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17825,
"upload_time": "2012-05-01T09:00:24",
"url": "https://files.pythonhosted.org/packages/4a/a6/53e3dafefb3542c90ac500b5ca56d822f3d2f5c07c2584bc8845fdee804d/tratihubis-0.1.zip"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "a41fb47971587f4fcc5606bf3a9b44a8",
"sha256": "1e92ceae66caf1c3a2305000f29cbcd11f959407a9cec8aa8b7bb177a3c3df3b"
},
"downloads": -1,
"filename": "tratihubis-0.2.zip",
"has_sig": false,
"md5_digest": "a41fb47971587f4fcc5606bf3a9b44a8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 23795,
"upload_time": "2012-05-02T07:36:42",
"url": "https://files.pythonhosted.org/packages/bd/94/539fa68e1e8f5a8355b81435dca2f8c25e8f725b4b08fa05ca32dee50267/tratihubis-0.2.zip"
}
],
"0.3": [
{
"comment_text": "",
"digests": {
"md5": "737fc7fd438874efe1857296054cde9c",
"sha256": "48a7006ae11340de987189291a0b77a0b47b51f512e66c3f652b493b28ede54e"
},
"downloads": -1,
"filename": "tratihubis-0.3.zip",
"has_sig": false,
"md5_digest": "737fc7fd438874efe1857296054cde9c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25226,
"upload_time": "2012-05-04T00:48:08",
"url": "https://files.pythonhosted.org/packages/12/87/9fe360bfe47bb45a982941d5207820ec7409a07100a274e31c4c8c7bb2ad/tratihubis-0.3.zip"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "da6f7e2480a00631ecb3ea56b47f8e86",
"sha256": "b0c7f9da0284238c82f06fd65925cb990048a43c9d12f763fdb75fc1b13e7d69"
},
"downloads": -1,
"filename": "tratihubis-0.4.zip",
"has_sig": false,
"md5_digest": "da6f7e2480a00631ecb3ea56b47f8e86",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27807,
"upload_time": "2012-05-04T21:16:33",
"url": "https://files.pythonhosted.org/packages/b1/5f/354b9a1f062efb52198403f4b907dd5d2e2d48e63bbc7906836847605b37/tratihubis-0.4.zip"
}
],
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "788c1d344488d848a2e77b834dd916d4",
"sha256": "b8bfcaffa2978f571542dc520bd962a821aa76100152c39416cb748c86fdc85f"
},
"downloads": -1,
"filename": "tratihubis-0.5.zip",
"has_sig": false,
"md5_digest": "788c1d344488d848a2e77b834dd916d4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 29758,
"upload_time": "2013-02-16T20:15:31",
"url": "https://files.pythonhosted.org/packages/7c/69/7ef0f270f62a29a6b1b87e35cea78ba178556d47f382c86f2f6dec7350a8/tratihubis-0.5.zip"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "788c1d344488d848a2e77b834dd916d4",
"sha256": "b8bfcaffa2978f571542dc520bd962a821aa76100152c39416cb748c86fdc85f"
},
"downloads": -1,
"filename": "tratihubis-0.5.zip",
"has_sig": false,
"md5_digest": "788c1d344488d848a2e77b834dd916d4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 29758,
"upload_time": "2013-02-16T20:15:31",
"url": "https://files.pythonhosted.org/packages/7c/69/7ef0f270f62a29a6b1b87e35cea78ba178556d47f382c86f2f6dec7350a8/tratihubis-0.5.zip"
}
]
}