{ "info": { "author": "Jeremy Tuloup", "author_email": "jerem@jtp.io", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: System :: Archiving :: Backup" ], "description": "Trello Full Backup\n==================\n\n.. image:: https://img.shields.io/pypi/v/trello-full-backup.svg?style=flat-square\n :target: https://pypi.python.org/pypi/trello-full-backup\n\n.. image:: https://img.shields.io/pypi/pyversions/trello-full-backup.svg?style=flat-square\n :target: https://pypi.python.org/pypi/trello-full-backup\n\n.. image:: https://img.shields.io/docker/automated/jtpio/trello-full-backup.svg?style=flat-square\n :target: https://hub.docker.com/r/jtpio/trello-full-backup/\n\nBackup everything from Trello:\n\n- boards, open and closed, as json files\n- lists, open and archived, as json files\n- cards, open and archived, as json files\n- attachments, downloaded as raw files\n\nThe script also creates a **folder tree structure** corresponding to the\nway data is organized. This is to make it more convenient to navigate\nlocally between folders, as it mimics the flow you have when using the\nweb and mobile apps.\n\nHere is an example of what the tree structure looks like:\n\n::\n\n 2015-11-12_23-28-36_backup/\n \u2514\u2500\u2500 me\n \u2514\u2500\u2500 A Test Board\n \u251c\u2500\u2500 0_To Do\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 0_Task3\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 attachments\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 0_chessboard.png\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 card.json\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 description.md\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 1_Task4\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 card.json\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 description.md\n \u251c\u2500\u2500 1_In Progress\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 0_Task2\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 card.json\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 description.md\n \u251c\u2500\u2500 2_Done\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 0_Task1\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 attachments\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 card.json\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 description.md\n \u2514\u2500\u2500 A Test Board_full.json\n\n- Lists and cards have their names prefixed by their position to keep\n the order\n- For each card:\n- The description is saved to a separate Markdown file\n- The attachments are downloaded to a separate folder\n- The rest stays in the json file\n\n\nRun with Docker\n---------------\n\nThe easiest way to execute the script with the default parameters (if you have Docker):\n\n::\n\n docker run -t -e TRELLO_API_KEY=YOUR_KEY -e TRELLO_TOKEN=YOUR_TOKEN -v /backups:/app jtpio/trello-full-backup\n\nThis will create a new folder on your host system in the `backups` directory. Feel free to adjust it based on your host system (GNU/Linux, Mac OS, Windows...).\n\nTo pass different parameters, for example to avoid downloading attachments:\n\n::\n\n docker run -t -e TRELLO_API_KEY=YOUR_KEY -e TRELLO_TOKEN=YOUR_TOKEN -v /backups:/app jtpio/trello-full-backup trello-full-backup -a 0\n\n\nInstall\n-------\n\n::\n\n pip install trello-full-backup\n\n\nUsage\n-----\n\nMake sure the environment variables **TRELLO\\_API\\_KEY** and\n**TRELLO\\_TOKEN** are correctly set.\n\n- To get the API key: https://trello.com/app-key\n- To get the token: https://trello.com/1/authorize?scope=read&expiration=never&name=backup&key=REPLACE_WITH_YOUR_API_KEY&response_type=token\n\nThen you can run the following commands:\n\n::\n\n export TRELLO_API_KEY=yourapikey\n export TRELLO_TOKEN=yourtoken\n\n\nAnd execute the script:\n\n::\n\n trello-full-backup\n\n\nBy default the script creates a folder with the current date as a name.\nExample: *2015-11-12\\_18-57-56\\_backup*\n\nYou can specify your own destination directory, but the script **does\nnot** create the intermediate directories in case they don't exist:\n\n::\n\n trello-full-backup -d path/to/dir\n\nOptions\n-------\n\n::\n\n trello-full-backup -h\n\n::\n\n usage: trello-full-backup [-h] [-d [DEST]] [-i] [-t] [-B] [-L] [-C] [-o]\n [-a [ATTACHMENT_SIZE]]\n\n Trello Full Backup\n\n optional arguments:\n -h, --help show this help message and exit\n -d [DEST] Destination folder\n -i, --incremental Backup in an already existing folder incrementally\n -t, --tokenize Tokenize the names for folders and files. Useful for\n scripts\n -B, --closed-boards Backup closed board\n -L, --archived-lists Backup archived lists\n -C, --archived-cards Backup archived cards\n -m, --my-boards Backup my personal boards\n -o, --organizations Backup organizations\n -a [ATTACHMENT_SIZE], --attachment-size [ATTACHMENT_SIZE]\n Attachment size limit in bytes. Set to -1 to disable\n the limit\n\nIf neither the ``-m`` or ``-o`` switches are specified, the script will default to backing up personal boards only.\n\nIncremental mode\n----------------\nThe incremental mode is useful for scripts. It will replace the names of the folders in each board by unique tokens.\nFurthermore, it allows the user to specify the same directory for backup.\nThis will update all the json and description.md files. However it will download the attachment only if they have changed from the last backup.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jtpio/trello-full-backup", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "trello-full-backup", "package_url": "https://pypi.org/project/trello-full-backup/", "platform": "", "project_url": "https://pypi.org/project/trello-full-backup/", "project_urls": { "Homepage": "https://github.com/jtpio/trello-full-backup" }, "release_url": "https://pypi.org/project/trello-full-backup/0.3.1/", "requires_dist": [ "requests" ], "requires_python": ">=3.4", "summary": "Backup everything from Trello", "version": "0.3.1" }, "last_serial": 4550453, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "2118a00f303e42de0e87321de82a62ce", "sha256": "c5b0bcd67db3d09f636ced56a703b8be12ab3659e07d415165d777d8baa3c237" }, "downloads": -1, "filename": "trello_full_backup-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2118a00f303e42de0e87321de82a62ce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7731, "upload_time": "2017-02-24T21:55:07", "url": "https://files.pythonhosted.org/packages/23/b8/9ae7b769cbbb9a088b7cd5f5331b5f60bdd8df89b1e60b409a4185a885e5/trello_full_backup-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cf92baabbf304d3de4bc80ded1a1eea", "sha256": "160cbb7de7c3daada3f64b6b8b8ae602fc8ed83b8d25345e1b5b50271905de7a" }, "downloads": -1, "filename": "trello-full-backup-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4cf92baabbf304d3de4bc80ded1a1eea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5083, "upload_time": "2017-02-24T21:55:08", "url": "https://files.pythonhosted.org/packages/c5/ab/f4ef66058b425f5af3faa97563f768b842335d9d4aaaf0ffdf10def75241/trello-full-backup-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "e01dab6f40673c36998d282067f68168", "sha256": "2a0d681d992a08f9acadb7339a6a622709aebd6e3456de5c491a370857d397ab" }, "downloads": -1, "filename": "trello-full-backup-0.2.2.tar.gz", "has_sig": false, "md5_digest": "e01dab6f40673c36998d282067f68168", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6126, "upload_time": "2017-05-30T10:04:41", "url": "https://files.pythonhosted.org/packages/24/a0/5c37234f191cd93cf18a17305200afd3d43fb793ff121431a7cba5b9978e/trello-full-backup-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "b362472181eb08108b5483964ba46f07", "sha256": "fcc8963f4cbcda7f7b0b0a1abecf839fc69d9211e5d4a03fee78ad35c17abeab" }, "downloads": -1, "filename": "trello-full-backup-0.2.3.tar.gz", "has_sig": false, "md5_digest": "b362472181eb08108b5483964ba46f07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6139, "upload_time": "2017-05-30T10:26:03", "url": "https://files.pythonhosted.org/packages/2a/f4/2c1564ecbb08bd19419726b4105119b36bf8f1736ff6699c35333821dcd9/trello-full-backup-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "e9302b1e362306c909360765a3e955ad", "sha256": "bedf427a2457deaa247a834d0766551e71b553c1bcbfcca484c8cdf9dabc1c00" }, "downloads": -1, "filename": "trello_full_backup-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e9302b1e362306c909360765a3e955ad", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9260, "upload_time": "2017-07-02T11:52:03", "url": "https://files.pythonhosted.org/packages/87/45/534ddceecc1a99549bbdf620a9bb9e7091dc647e0bd9ef5435bbc39acd60/trello_full_backup-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0feb113988c94b41777e28a0c95175f", "sha256": "fbc8e2e7e5cb05318ada39689d7b3cabb3aff1d864ddd1d5257f8dc7b0d64b23" }, "downloads": -1, "filename": "trello-full-backup-0.2.4.tar.gz", "has_sig": false, "md5_digest": "d0feb113988c94b41777e28a0c95175f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6162, "upload_time": "2017-07-02T11:52:00", "url": "https://files.pythonhosted.org/packages/f5/5c/5047e61c1a942918a69cc88d1fbef527d00f581ea210bfa84290b4a69fcd/trello-full-backup-0.2.4.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "fa34d4c2ec4e6ba9473b5dd4101366e5", "sha256": "421f4b3edcff0b4e3def430b64c4f7452b59a981dfed2776be6bf8c1fa923ddf" }, "downloads": -1, "filename": "trello_full_backup-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fa34d4c2ec4e6ba9473b5dd4101366e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 7613, "upload_time": "2018-12-01T15:15:24", "url": "https://files.pythonhosted.org/packages/d2/1d/022c774324499014a65f0ded1ce9ebc1d0c539a7ec615638f62225ba5392/trello_full_backup-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db30b8c4719836842ac89143dd25c495", "sha256": "5bd8f3276ab4fff04d802442cba79bdfecf8b749551243f4d02fc2bdf528dfd9" }, "downloads": -1, "filename": "trello-full-backup-0.3.1.tar.gz", "has_sig": false, "md5_digest": "db30b8c4719836842ac89143dd25c495", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 6370, "upload_time": "2018-12-01T15:15:25", "url": "https://files.pythonhosted.org/packages/31/f9/b7adb736a9704c55c181678f22004b3c407efbdac918e9643fbf1c717643/trello-full-backup-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fa34d4c2ec4e6ba9473b5dd4101366e5", "sha256": "421f4b3edcff0b4e3def430b64c4f7452b59a981dfed2776be6bf8c1fa923ddf" }, "downloads": -1, "filename": "trello_full_backup-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fa34d4c2ec4e6ba9473b5dd4101366e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 7613, "upload_time": "2018-12-01T15:15:24", "url": "https://files.pythonhosted.org/packages/d2/1d/022c774324499014a65f0ded1ce9ebc1d0c539a7ec615638f62225ba5392/trello_full_backup-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db30b8c4719836842ac89143dd25c495", "sha256": "5bd8f3276ab4fff04d802442cba79bdfecf8b749551243f4d02fc2bdf528dfd9" }, "downloads": -1, "filename": "trello-full-backup-0.3.1.tar.gz", "has_sig": false, "md5_digest": "db30b8c4719836842ac89143dd25c495", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 6370, "upload_time": "2018-12-01T15:15:25", "url": "https://files.pythonhosted.org/packages/31/f9/b7adb736a9704c55c181678f22004b3c407efbdac918e9643fbf1c717643/trello-full-backup-0.3.1.tar.gz" } ] }