{ "info": { "author": "Jeff Triplett", "author_email": "jeff.triplett@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Trolley\n=======\n\nTrolley syncs issues from CSVs to Github and to sync projects between\nGithub and Trello.\n\nTrolley is a useful tool for loading an initial set of issues, labels,\nand milestones on github.\n\nTrolley was written to also help me manage a few projects where I need\nto selectively sync Issues and boards between Trello and Github.\n\n.. figure:: http://upload.wikimedia.org/wikipedia/commons/a/a6/Fraum%C3%BCnster_-_Classic_Trolley_-_M%C3%BCnsterhof_2010-08-27_17-28-10.JPG\n :alt: \n\nBy Roland zh (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons\n\nInstallation\n------------\n\n.. code-block:: bash\n\n $ pip install trolley\n\nUsage\n-----\n\nExample trolley.yml\n~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: yaml\n\n github:\n username: 'username'\n password: 'password'\n org: 'github'\n repo: 'gitignore'\n\n trello:\n app_key: 'get-this-from-trello'\n app_secret: 'get-this-from-trello'\n auth_token: 'get-this-from-trello'\n board_id: 'your-board-id-sha'\n default_list: 'Uncategorized'\n\nUsage\n~~~~~\n\n.. code-block:: bash\n\n $ trolley --conf trolley.yml --help\n\n $ trolley --conf trolley.yml create_github_issues\n\nCommands\n~~~~~~~~\n\n``bootstrap`` \n Sets up github with some sensible defaults.\n\n``close_existing_github_issues`` \n Close all existing GitHub issues.\n\n``create_github_issues`` \n Create GitHub issues from a CSV file.\n\n``create_github_labels`` \n Create GitHub labels from a CSV file.\n\n``create_github_milestones`` \n Create GitHub milestones from a CSV file.\n\n``create_trello_cards`` \n Create Trello cards from a CSV file.\n\n``create_trello_labels`` \n Create Trello labels from a CSV file.\n\n``create_trello_lists`` \n Create Trello lists from a CSV file.\n\n``delete_existing_github_labels``\n Delete labels from GitHub repo.\n\n``delete_existing_github_milestones``\n Delete milestones from GitHub repo.\n\n``sync_github_issues_to_trello_cards``\n Convert your GitHub issues to Trello cards.\n\n``sync_trello_cards_to_github_issues``\n Convert your Trello cards to GitHub issues.\n\nObject Overview\n---------------\n\n+--------------+----------+---------+\n| Github | Trello | Notes |\n+==============+==========+=========+\n| Org / Repo | Board | == |\n+--------------+----------+---------+\n| Issues | Cards | == |\n+--------------+----------+---------+\n| Labels | Labels | == |\n+--------------+----------+---------+\n| Milestones | | |\n+--------------+----------+---------+\n| | Lists | |\n+--------------+----------+---------+\n\nMilestones and Lists may be mapped together but they are fundamentally\ntreated very differently.\n\nFuture features\n---------------\n\n- Needs allowed list / blocked list for handling via labels.\n- This is basically \"works for me\" but it needs error handling.\n\nInspiration\n-----------\n\nThis project shares ideas from the following projects:\n\n- The CSV bits via: https://github.com/nprapps/app-template\n\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/jefftriplett/trolley", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "trolley", "package_url": "https://pypi.org/project/trolley/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/trolley/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/jefftriplett/trolley" }, "release_url": "https://pypi.org/project/trolley/0.1.5/", "requires_dist": null, "requires_python": null, "summary": "Trolley syncs issues between CSV, Github, and Trello.", "version": "0.1.5" }, "last_serial": 1512078, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "377f78ca69e570f23728d4dac312a727", "sha256": "3256ba0e9c5220ed18431146b0db2b0ac3ef876d15b2b6317bb3d3ef8c9ff896" }, "downloads": -1, "filename": "trolley-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "377f78ca69e570f23728d4dac312a727", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5466, "upload_time": "2015-04-20T02:37:22", "url": "https://files.pythonhosted.org/packages/a5/76/34428c2814b626ddddfca665b76a7ba86845c444ac1181586fdc7d125ddd/trolley-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5a99e58646c04fcc389eb7a3462f5b7", "sha256": "25ed5cf7f4926d2992dd9357452a672fdb146461362982ccb3326f2d396ad76d" }, "downloads": -1, "filename": "trolley-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f5a99e58646c04fcc389eb7a3462f5b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7813, "upload_time": "2015-04-20T02:37:18", "url": "https://files.pythonhosted.org/packages/0c/a4/ed54b2dc8423fea48c8aef85c1189e08177ce2b7aa0f3b76ab7bace1123b/trolley-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e39c8cb06ad76deed3f68a810bead9a9", "sha256": "b505151c2d3e1a0ca28dacec3bc79217b5198b72caf2bd876f37bb5a59de747e" }, "downloads": -1, "filename": "trolley-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e39c8cb06ad76deed3f68a810bead9a9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5466, "upload_time": "2015-04-20T02:54:01", "url": "https://files.pythonhosted.org/packages/df/e4/6873ae365689f6e18772b177aa02964b66f3f8705ea3420d9c6803910987/trolley-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a88dd489612526aa673989711f4e6ec", "sha256": "fa028f2238844ac5aaf7dc38881f0b0b34fa5f167ae2ed4e8dee1f121f62bde6" }, "downloads": -1, "filename": "trolley-0.1.3.tar.gz", "has_sig": false, "md5_digest": "2a88dd489612526aa673989711f4e6ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7922, "upload_time": "2015-04-20T02:53:58", "url": "https://files.pythonhosted.org/packages/6c/9c/c65417c2c696ccc0aa4a69b03e60fc9b762cfb548c5f41d43c02f8707434/trolley-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b18b1cb410f5109ca3b1faae82a9c063", "sha256": "0061a6dc5d906527eae30441831fdc05b595887f337529496d9e966bb2908a7a" }, "downloads": -1, "filename": "trolley-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b18b1cb410f5109ca3b1faae82a9c063", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5505, "upload_time": "2015-04-20T03:23:43", "url": "https://files.pythonhosted.org/packages/f3/45/8ebf499341071d076ac21db111de59fe990863fa8bbd517ff7d80892fec1/trolley-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cca2053c9c0465f19e472b2a240e59cc", "sha256": "29b9d2a992aaef47f5057308f28d7cda006036255654709cd68481c52ffb10c6" }, "downloads": -1, "filename": "trolley-0.1.4.tar.gz", "has_sig": false, "md5_digest": "cca2053c9c0465f19e472b2a240e59cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7805, "upload_time": "2015-04-20T03:23:40", "url": "https://files.pythonhosted.org/packages/83/4e/35f6dd5abe86b4d593bfe5e4f0f7fdbffd1b78c29cce7f08ceea76d472f8/trolley-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "0da36cb7942bd542332985496ae58ff9", "sha256": "d6a194609a57843f0f3db76d7a843d32a9ecf678cdde9f82116cc1d7e227d468" }, "downloads": -1, "filename": "trolley-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0da36cb7942bd542332985496ae58ff9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5529, "upload_time": "2015-04-20T03:55:59", "url": "https://files.pythonhosted.org/packages/aa/e1/07abddb6de14aec0cdb8b22f2af0e307f8f166b84fb6f16fda9e5a19d30f/trolley-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95899ad8941472d67d4fa9019f635371", "sha256": "e6d6d42807c2b893234a1d91cdb3eb45232cf697a25662f66235a186dc4529a1" }, "downloads": -1, "filename": "trolley-0.1.5.tar.gz", "has_sig": false, "md5_digest": "95899ad8941472d67d4fa9019f635371", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7819, "upload_time": "2015-04-20T03:55:55", "url": "https://files.pythonhosted.org/packages/24/7d/c128ace91b23191e3e77dbb347428c5132712c0cf89a0c74ea13f9f261d0/trolley-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0da36cb7942bd542332985496ae58ff9", "sha256": "d6a194609a57843f0f3db76d7a843d32a9ecf678cdde9f82116cc1d7e227d468" }, "downloads": -1, "filename": "trolley-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0da36cb7942bd542332985496ae58ff9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5529, "upload_time": "2015-04-20T03:55:59", "url": "https://files.pythonhosted.org/packages/aa/e1/07abddb6de14aec0cdb8b22f2af0e307f8f166b84fb6f16fda9e5a19d30f/trolley-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95899ad8941472d67d4fa9019f635371", "sha256": "e6d6d42807c2b893234a1d91cdb3eb45232cf697a25662f66235a186dc4529a1" }, "downloads": -1, "filename": "trolley-0.1.5.tar.gz", "has_sig": false, "md5_digest": "95899ad8941472d67d4fa9019f635371", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7819, "upload_time": "2015-04-20T03:55:55", "url": "https://files.pythonhosted.org/packages/24/7d/c128ace91b23191e3e77dbb347428c5132712c0cf89a0c74ea13f9f261d0/trolley-0.1.5.tar.gz" } ] }