{ "info": { "author": "John Lee and Chris Holdgraf", "author_email": "choldgraf@berkeley.edu", "bugtrack_url": null, "classifiers": [], "description": "# gitautopush\n\nWatch a local git repository for any changes and automatically push them to GitHub.\n\nUseful as a live synchronization tool for teaching.\nSay you've got a Jupyter notebook (or a markdown file) that you are populating with code while\nyou are teaching a class. As you add content to the file, you'd like students\nto have access to the \"latest\" version at any moment in time.\n\n`gitautopush` lets you automatically track the latest changes to a git repository,\nand automatically push them to GitHub. You\ncan then ask students to visit a GitHub or nbviewer link, and they\nwill be able to see any changes that you've made.\n\nSee the GIF below for an example.\n\n![gitautopush demo](doc/images/demo.gif)\n\n## Installation\n\nYou can install with pip:\n\n`pip install gitautopush`\n\n## Usage\n\nFirst, make sure that you've got a GitHub repository cloned to a local folder.\n\nNext, run `gitautopush` and point it to that folder:\n\n```\ngitautopush /path/to/my/repo/folder\n```\n\n`gitautopush` will begin watching this folder for any changes. When it\nfinds them, it will commit them and push the folder contents to GitHub.\nIt will also display some links that you can share with students to help\nthem follow along.\n\n## Parameters\n\nBelow are parameters you can use to customize the behavior of Gitautopush.\n\n* `--sleep ` - the amount of time (in seconds) to wait in between\n attempts to synchronize.\n* `--path ` - a path to the folder you'd like to watch and synchronize\n\n## Tutorial via an example use-case\n\nHere's a common use-case for `gitautopush`:\n\nYou're teaching a Software Carpentry bootcamp and you'd like to do your work\nin a Jupyter Notebook. You have a \"master copy\" that you're working from, but you\ndon't want to give the whole thing to students ahead of time. Your plan is to\ndo your work in an empty notebook as students watch, and you'd like students\nto have access to the latest version of the notebook at all times.\n\nFirst, you **create an empty GitHub repository** which we'll call `gitautopush-demo`.\nNext, we'll create a folder where we'll be doing our work:\n\nNext, you **clone this empty repository to your computer**:\n\n```\ngit clone https://github.com/choldgraf/gitautopush-demo\n```\n\nNow, run `gitautopush` and point it to the new folder. We'll\ntell it to sleep for 10 seconds after each check:\n\n```\ngitautopush --path ./gitautopush-demo --sleep 10\n```\n\n`gitautopush` will print a few useful links, and begin checking the\nfolder for any changes. When it finds one, it will commit the change to\nthe repository and push the result. It will also print an **nbviewer link**\nfor any Jupyter notebook that is changed. You can share these links with\nyour students.\n\nFinally, open a new terminal window and use it to launch an application\n(e.g. Jupyter Lab, Jupyter Notbeook, or your own text editor) to edit\nthe content.\n\nAs changes are made, note the links that are provided and share them\nwith your students.\n\n## Acknowledgements\n\nThis tools was first thought up by John Lee, then adapted as a Python module\nby Chris Holdgraf.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "gitautopush", "package_url": "https://pypi.org/project/gitautopush/", "platform": "", "project_url": "https://pypi.org/project/gitautopush/", "project_urls": null, "release_url": "https://pypi.org/project/gitautopush/0.4.1/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.4.1" }, "last_serial": 5881043, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b4b55af9d38bda89b834ac0fa3b9b5b8", "sha256": "dad878de1017e119a9ee578606645b98f887f3ed344e5ebcdd2b5dc280d6fd42" }, "downloads": -1, "filename": "gitautopush-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b4b55af9d38bda89b834ac0fa3b9b5b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4281, "upload_time": "2017-11-10T04:15:18", "url": "https://files.pythonhosted.org/packages/27/ab/3e015a3cb323ee668040af2324d79834dd6fea13d9ba55fd3de52d191e72/gitautopush-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c77d6c138a20823fe015e14760ddc363", "sha256": "2171497f5ed16e26cf8093c70edebae5d105349ff0d24117b2047fcfc98521df" }, "downloads": -1, "filename": "gitautopush-0.1.tar.gz", "has_sig": false, "md5_digest": "c77d6c138a20823fe015e14760ddc363", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2892, "upload_time": "2017-11-10T04:15:20", "url": "https://files.pythonhosted.org/packages/5e/90/4a25645620eadaca0b95e9dbaab66bb88034d4d0d2929e516e58c9297f27/gitautopush-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "1065825be68a1e1b0538ae954687145f", "sha256": "bd8ec9768985f379b0833d92e95ee191fdd88b634252dca9897897b3a9769d79" }, "downloads": -1, "filename": "gitautopush-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1065825be68a1e1b0538ae954687145f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4558, "upload_time": "2017-11-18T00:52:50", "url": "https://files.pythonhosted.org/packages/61/2f/ab01c41707d2db05f3a6fd6496133d93408bee7c3c52ffda9d6af9d97c04/gitautopush-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2894dad14233df74fcbf151e3bbc4793", "sha256": "537a1c14fb413b72ab30f7c4fedaac470197b5edaf4b459a177d23aa140f3eb0" }, "downloads": -1, "filename": "gitautopush-0.2.tar.gz", "has_sig": false, "md5_digest": "2894dad14233df74fcbf151e3bbc4793", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1335129, "upload_time": "2017-11-18T00:52:52", "url": "https://files.pythonhosted.org/packages/67/b1/d4d820fa663def735b57d059d2985e752ac3b15bf19b32a71627674755be/gitautopush-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "2e925c09c78bcffce8ed768b3d7b8077", "sha256": "51282254f37ca34e2a3ad49be4dec221497caba1f286dad6bc94d36a7da18b25" }, "downloads": -1, "filename": "gitautopush-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2e925c09c78bcffce8ed768b3d7b8077", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6447, "upload_time": "2018-01-25T02:25:16", "url": "https://files.pythonhosted.org/packages/be/9d/34abe7627a34b5ea22a54dc91638e8d47c7608defccfc57b21516e69358e/gitautopush-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c85012a0b0d1d29573ec68b00392355", "sha256": "767716accb7c749da4fdf755b117e97cfea1d2ce02f5ce73ee3e7591abab7de3" }, "downloads": -1, "filename": "gitautopush-0.3.tar.gz", "has_sig": false, "md5_digest": "7c85012a0b0d1d29573ec68b00392355", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1856137, "upload_time": "2018-01-25T02:25:18", "url": "https://files.pythonhosted.org/packages/93/93/78a3a61be7c1edf2c23add437a510bd17ae7c0d83ebd1aa16b25982d09d1/gitautopush-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "4a713df1b86f6db3d8250b73ca92ee32", "sha256": "15fd566ee2cc2f8b4112cd9de03e2a9d32886432ee7255abcd5437ee2856ba5e" }, "downloads": -1, "filename": "gitautopush-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a713df1b86f6db3d8250b73ca92ee32", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6732, "upload_time": "2018-02-09T22:22:30", "url": "https://files.pythonhosted.org/packages/34/33/9121e833fe3803c4323db10ae55806ecbb76a025c6fa904b73026abee43d/gitautopush-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8502625689cdb72c16bff1b91663c24", "sha256": "d0bbbc53aecb09e817cfeeb671c6f85931d5582c68e1c6be3bf5ec910d814331" }, "downloads": -1, "filename": "gitautopush-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b8502625689cdb72c16bff1b91663c24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1855880, "upload_time": "2018-02-09T22:22:34", "url": "https://files.pythonhosted.org/packages/dd/1e/3a5c4ded2fc639d7861fe9f6f9b586e4d5fcc530ebf0e43eab12723ec31b/gitautopush-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "64fd627e38674f3ddfbc7025054b1a91", "sha256": "c8db285d61760b56888035ebb772f83764f29c0ca73a5896555fd18992a67903" }, "downloads": -1, "filename": "gitautopush-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "64fd627e38674f3ddfbc7025054b1a91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5471, "upload_time": "2019-09-24T03:16:01", "url": "https://files.pythonhosted.org/packages/a7/d9/9ba59d54f28d3a67b72d43d1b1c35d910cf20a0c3ff39f98a32cd531a369/gitautopush-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "232f431764d4ec83de60a9199f7ec47d", "sha256": "c24f23f0747ee9f7d2ff6045d273f1b8081efda46a1a43ff9052f1f40597fccb" }, "downloads": -1, "filename": "gitautopush-0.4.0.tar.gz", "has_sig": false, "md5_digest": "232f431764d4ec83de60a9199f7ec47d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4113, "upload_time": "2019-09-24T03:16:03", "url": "https://files.pythonhosted.org/packages/f1/11/9b407d945e6d6888e110608f45a3ecf80c3ac0fb0730dd91e7e22e794987/gitautopush-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "d4661dfe4db030d5c185cfae5063a243", "sha256": "178c764f5baddf4571d605f959adf0f474076e377b6ae7517c5eb868ea87f9c1" }, "downloads": -1, "filename": "gitautopush-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d4661dfe4db030d5c185cfae5063a243", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5480, "upload_time": "2019-09-24T17:05:55", "url": "https://files.pythonhosted.org/packages/77/3b/fef3184a145c7c27a000fb291ebb5dd4af4b905a753455f7227bea5d66e8/gitautopush-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f289ba794f330c19f7f2e59c8f661a8", "sha256": "be961b4ffe692155e3451d8c902d245f1369b74303a04eb8f03712b02c88bc85" }, "downloads": -1, "filename": "gitautopush-0.4.1.tar.gz", "has_sig": false, "md5_digest": "4f289ba794f330c19f7f2e59c8f661a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4131, "upload_time": "2019-09-24T17:05:58", "url": "https://files.pythonhosted.org/packages/2c/06/2a77cdd141fd486a2a85fbe1d0e7f691083a3c9c6712076c9c42f7bff923/gitautopush-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d4661dfe4db030d5c185cfae5063a243", "sha256": "178c764f5baddf4571d605f959adf0f474076e377b6ae7517c5eb868ea87f9c1" }, "downloads": -1, "filename": "gitautopush-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d4661dfe4db030d5c185cfae5063a243", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5480, "upload_time": "2019-09-24T17:05:55", "url": "https://files.pythonhosted.org/packages/77/3b/fef3184a145c7c27a000fb291ebb5dd4af4b905a753455f7227bea5d66e8/gitautopush-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f289ba794f330c19f7f2e59c8f661a8", "sha256": "be961b4ffe692155e3451d8c902d245f1369b74303a04eb8f03712b02c88bc85" }, "downloads": -1, "filename": "gitautopush-0.4.1.tar.gz", "has_sig": false, "md5_digest": "4f289ba794f330c19f7f2e59c8f661a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4131, "upload_time": "2019-09-24T17:05:58", "url": "https://files.pythonhosted.org/packages/2c/06/2a77cdd141fd486a2a85fbe1d0e7f691083a3c9c6712076c9c42f7bff923/gitautopush-0.4.1.tar.gz" } ] }