{ "info": { "author": "Marco Lovato", "author_email": "maglovato@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# hooks4git\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Build Status](https://travis-ci.org/lovato/hooks4git.svg?branch=master)](https://travis-ci.org/lovato/hooks4git)\n[![Coverage Status](https://coveralls.io/repos/github/lovato/hooks4git/badge.svg?branch=master)](https://coveralls.io/github/lovato/hooks4git?branch=master)\n[![PyPI version](https://badge.fury.io/py/hooks4git.svg)](https://badge.fury.io/py/hooks4git)\n\n[![asciicast](https://asciinema.org/a/197368.png)](https://asciinema.org/a/197368)\n\nA fully configurable and extensible language-agnostic Hook Management System for GIT\n\nAuto checks your code before you ship it. Works with any programmning language. If not, let me know.\n\n## Availability\n\nProduction version is available from [Pypi](https://pypi.org/project/hooks4git), and development branch is also published by Travis-CI to [Pypi TestServer](https://test.pypi.org/project/hooks4git). Both can be downloaded and installed via the pip command.\n\n### More information on Git Hooks\n\n[Here](https://githooks.com). There is lots of quick information, and as well other githooks management approaches.\n\n## Getting started\n\nThese instructions will show you how to install and use the application.\n\n### Supported OSs\n\nSupported OSs are Linux, MAC and Windows. However, I was not able to make it work `cmd.exe` (like if cmd.exe even works...). If you are using Windows, use it inside GitBash. **DO NOT**, I repeat, do not use it on `cmd.exe`.\n\n### Installation\n\n```bash\npip install hooks4git --user\n```\n\nDepending on your setup, you might want to use `pip3` instead of `pip`. Sometimes, during execution, Python2.7 complains about not finding module `configparser`. Using Python3x this doesn't happen.\n\nPlease, keep in mind that `--user` folder might not be on your PATH environment var. Usually you can find it under `~/.local/bin`. If you fix your `$PATH` now, it will be automatically fixed for any other python tool you might eventually install inside your user context.\n\nThen, a script called `hooks4git` will be available all the time, to hook any project you are currently in. By running with the `--init` argument, hooks will be applied (i.e replace all your sample hook files).\n\nPlease note you need to manually keep upgrading your system tools, like you do for other tools, like pip itself.\n\n### Built-in Scripts\n\nCurrently, there is only one available built-in script, called `check_branch_name.sh`. If you want to use, just follow the exemple on the default .ini file, on sub-section 'checkbranch'. This is the way to trigger built-in scripts, prefixing them with 'h4g/'.\n\nOn 0.1 release, I was using a wildcard character for built-in scripts, but that caused so many headaches, mainly when trying to make this work inside GitBash for windows (ok, that was because I was actually trying to call a bat file ... then I just gave it up). I also tried once calling 'scripts', but it may confuse with a possible local 'scripts' folder on your project.\n\n### CLI Usage\n\nAfter installation, your repo needs to be hooked for all events. Prior version used YAML for configuration management, but that caused PyYAML to be a dependency, and things went a little wrong when running it as a tool. So I choose .ini files over .json files (both have Python native parsers) because it looked less ugly.\n\nInside your git repository, just type:\n\n```bash\nhooks4git --init\n```\n\nAnd get all your regular non-sense-hard-to-use-and-hard-to-maintain-and-hard-to-share hook scripts updated.\n\nThen, you just need to open [.hooks4git.ini](hooks4git/.hooks4git.ini) file on the root of your project and configure it the way you want.\n\nThis first example section is meant for Python, but you can use any tool you want, at any given git hook event.\n\nExample section for pre-commit, for Python:\n\n```bash\n[scripts]\nflake8 = flake8 --max-line-length=119 --exclude .git,build,dist,.env,.venv\nnosetests = nosetests --with-coverage\n\n[hooks.pre-commit.scripts]\ncheck = flake8\n```\n\nIt also could be for NodeJS:\n\n```bash\n[scripts]\neslint = eslint -f checkstyle index.js > checkstyle-result.xml\njshint = jshint *.js\n\n[hooks.pre-commit.scripts]\ncheck_a = eslint\ncheck_b = jslint\n```\n\nNote: All scripts you add here need to be available on your PATH for execution. So you need to make all of them depedencies on your current project, no matter the language it is written with. Per default, the available hooks are only `echo` commands, which will always pass!\n\n### CI Usage\n\nWhen running inside CI, if you manage to have `hooks4git` package available, you can force trigger a hook this way:\n\n```bash\nhooks4git -t --ci\n```\n\nThis will run the very same set of scrips you ran on your development workstation prior to the commit. Please note that `` is any valid entry on `.hooks4git.ini` file, not only necessarily a git-hook. See below about \"Custom Hooks\".\n\n#### Colors\n\nThe `--ci` parameter tells hooks4git to not print in nice colors, just plain strings. But first check if your CI output handle colors or not. For instance, Bitbucket Pipelines handle it nicely, while Jenkins doesn't.\n\n#### \"Custom Hooks\"\n\nHooks have those static names because they are automatically triggered by GIT. However, you can create others inside `.hooks4git.ini` file. And you can trigger them using the `-t` parameter.\n\nSo, if you like `check_branch_name` feature, you might think running it inside CI wouldn't be a great idea. How to solve it?\n\n```bash\n[hooks.ci-develop.scripts]\ncheck = flake8\ntests = tests_with_report\n```\n\nAs said, there is no \"ci-develop\" git hook. But due to internal `hooks4git` mechanics, using `-t` flag, `hooks4git` will try to find and run that configuration.\n\nSo, it would be a matter of adding this to your CI script:\n\n```bash\n- pip install hooks4git\n- hooks4git -t ci-develop\n```\n\nAnd since you were using flake8 and tests already on your commit and push hooks, you guarantee to run the same tools with the same parameters on CI, with a nice output, colored or not.\n\nDisclaimer: This feature was never intended to exist, and happened to work by accident. Since it is kind of cool and doesn't break the law, I decided to document it.\n\n### Output\n\nHere is a sample output for a Python configuration, with Flake8 (black and white... it has actually a full colored output if --ci parameter is not issued):\n\n```bash\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\nhooks4git v0.3.x :: Pre-Commit :: hook triggered\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\nSTEP | $ flake8 --max-line-length=119 --exclude .git,__pycache__,build,dist\nOUT | None\nPASS | 'flake8' step executed successfully\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\nSTEPS| 1 were executed\nTIME | Execution took 0:00:00.684762\nPASS | All green! Good!\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\n```\n\n## Contribute\n\nIf you are willing to code something on this project, it is quite simple. You first need to fork it directly on GitHub, so you can get a copy on your computer that you can push to. Therefore, you would be able to open a Pull Request to the original repository.\n\n```bash\n> git clone git@github.com:/hooks4git.git\n> cd hooks4git\n> mkvirtualenv hooks4git -p python3 # or any way to to that\n> pip install -r requirements.txt # yes, pipenv is close\n> pip install -r requirements-dev.txt\n> pip uninstall hooks4git # just in case\n> pip install -e . --user\n> hooks4git --init # OF COURSE!!!\n> git checkout -b feature/super_cool_feature\n```\n\nThe above will install hooks4git linked to the folder you cloned the repository to, instead of the module you normally download from Pypi. This way, every change you make on the source code will affect your environment, makeing it easy to use. Of course there are several other ways, like using virtualenv, for instance. That was only a suggestion and affects all repos you have. This is the way I usually test develop versions for a few days prior to a release.\n\n## License\n\nThis project is licensed under MIT license. See the [LICENSE](LICENSE) file for details\n\n## Authors\n\nSee list of [contributors](../../graphs/contributors) who participated in this project.\n\n## Credits\n\n- [Marco Lovato](https://github.com/lovato)\n- [Collins Abitekaniza](https://github.com/collin5/precommit-hook) (where I forked from)\n\n## Change Log\n\n### 0.3.x\n\n- Major rework on how strings are printed out\n- Added --ci parameter, so no color will be printed out (Idea from [Fernando Esp\u00edndola](https://github.com/fernandoe))\n- Auto create hooks folder (inside .git) if it is missing (Idea from [\u00c9douard Lopez](https://github.com/edouard-lopez))\n\n### 0.2.x\n\n- Support for Windows with GitBash\n- Added docker scripts for quick clean machine testing environment\n- Better exception handling when user configures duplicate sections by mistake\n- FIXED: Changed default max line length example to 119 instead of 120\n- Replaced copying code to .git/hooks with a safe bash caller\n- Replaced '\\_' folder (or 'scripts' folder) with 'h4g' folder for internal scripts\n- FIXED: Script order inside a hook definition was random\n- Standard Error Output was not being handled and printed accordingly\n\n### 0.1.x\n\n- Initial release", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/lovato/hooks4git/tarball/0.3.205", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lovato/hooks4git", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hooks4git", "package_url": "https://pypi.org/project/hooks4git/", "platform": "any", "project_url": "https://pypi.org/project/hooks4git/", "project_urls": { "Download": "https://github.com/lovato/hooks4git/tarball/0.3.205", "Homepage": "https://github.com/lovato/hooks4git" }, "release_url": "https://pypi.org/project/hooks4git/0.3.205/", "requires_dist": null, "requires_python": "", "summary": "Extensible Hook System for GIT", "version": "0.3.205" }, "last_serial": 5237718, "releases": { "0.1.105": [ { "comment_text": "", "digests": { "md5": "fefc52f74c826c1320cb2063c15a7245", "sha256": "1b0816dc6957df91470100bd813ea19ab63c24a9420605bbace3b3d82f7bd668" }, "downloads": -1, "filename": "hooks4git-0.1.105.tar.gz", "has_sig": false, "md5_digest": "fefc52f74c826c1320cb2063c15a7245", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12739, "upload_time": "2018-08-21T13:13:46", "url": "https://files.pythonhosted.org/packages/58/5e/b0af56970662477c75fea6f97b8098b35ef23fc9d2270e4d7dff07beaa04/hooks4git-0.1.105.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "5633779336552221e4211534da318b5d", "sha256": "95a91bf046704fd3b9b1435cc10e662d11acbca2563563a5db860775dd32518d" }, "downloads": -1, "filename": "hooks4git-0.1.11.tar.gz", "has_sig": false, "md5_digest": "5633779336552221e4211534da318b5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4492, "upload_time": "2018-07-05T13:44:05", "url": "https://files.pythonhosted.org/packages/b8/21/0a36995feb1a89c6a73ac8124dde01e3966f9097bd37f084a8cd58cb43e9/hooks4git-0.1.11.tar.gz" } ], "0.1.110": [ { "comment_text": "", "digests": { "md5": "1f08bb375c3dcb3608c4f118343ce4b9", "sha256": "f18fb04844c7c8951bb4673a3d8c2baa55648ef614c72440eb33299c210c7eef" }, "downloads": -1, "filename": "hooks4git-0.1.110.tar.gz", "has_sig": false, "md5_digest": "1f08bb375c3dcb3608c4f118343ce4b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12737, "upload_time": "2018-08-21T15:46:58", "url": "https://files.pythonhosted.org/packages/7a/6a/627e0095c0532057326c15dfa309de38b2024e938230538d68b535a3ae82/hooks4git-0.1.110.tar.gz" } ], "0.1.115": [ { "comment_text": "", "digests": { "md5": "0be0bad281ac11c6820ea432380f78b3", "sha256": "0011cbfbd617332e864a008c9a3cda49e321c2d07e4fc08d4989537e4313002b" }, "downloads": -1, "filename": "hooks4git-0.1.115.tar.gz", "has_sig": false, "md5_digest": "0be0bad281ac11c6820ea432380f78b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12952, "upload_time": "2018-11-21T16:30:07", "url": "https://files.pythonhosted.org/packages/35/b5/0d65853f9cc516a973bc9c82bd2321c24634dffa556305814b04a58ce624/hooks4git-0.1.115.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "cab0d09ec4f156f25c6e16b81a8a895c", "sha256": "632923e835bdaeeac8c37bf59992a942f6cb63011b11c193293872cb584e5702" }, "downloads": -1, "filename": "hooks4git-0.1.14.tar.gz", "has_sig": false, "md5_digest": "cab0d09ec4f156f25c6e16b81a8a895c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5324, "upload_time": "2018-07-05T13:58:13", "url": "https://files.pythonhosted.org/packages/18/ad/7fbc339bcc7758c9b2dc85d60800c6aff58082dcf5db2306df112b9260f1/hooks4git-0.1.14.tar.gz" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "ccb74eb8ce5b095cd2b480bd0a818c94", "sha256": "7c798a7f5d8a8d11a907efdc4cc077200bfaf605ef54dfd49a59780c9791b931" }, "downloads": -1, "filename": "hooks4git-0.1.17.tar.gz", "has_sig": false, "md5_digest": "ccb74eb8ce5b095cd2b480bd0a818c94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5385, "upload_time": "2018-07-05T14:09:12", "url": "https://files.pythonhosted.org/packages/83/19/5986c6eeb05ef393930407b3d008de66168a48bbede08a4ea130424da2d8/hooks4git-0.1.17.tar.gz" } ], "0.1.45": [ { "comment_text": "", "digests": { "md5": "e5cb5a37ab2e177c965b54cbfed1ad37", "sha256": "ad614c49a68e0b21330f8f3fbc4cf068cb6d205b32e1946004ee4071cc923318" }, "downloads": -1, "filename": "hooks4git-0.1.45.tar.gz", "has_sig": false, "md5_digest": "e5cb5a37ab2e177c965b54cbfed1ad37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6171, "upload_time": "2018-07-06T18:47:16", "url": "https://files.pythonhosted.org/packages/79/45/ec6798e11c087c305c813e6030211990ed7f3ecbac4a2ded5bb06a0830c5/hooks4git-0.1.45.tar.gz" } ], "0.1.50": [ { "comment_text": "", "digests": { "md5": "b58f340d3eb648b0de8f99246550fff5", "sha256": "c48683a6cc4e4a06216e73fd14d396ed22521315f4d8592aa1447d08fb8288c3" }, "downloads": -1, "filename": "hooks4git-0.1.50.tar.gz", "has_sig": false, "md5_digest": "b58f340d3eb648b0de8f99246550fff5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8171, "upload_time": "2018-07-06T19:11:56", "url": "https://files.pythonhosted.org/packages/53/fe/29097070fbceb0e8e34d1284bc89261ca11f10454653a02d8031544b30a7/hooks4git-0.1.50.tar.gz" } ], "0.1.53": [ { "comment_text": "", "digests": { "md5": "e0cbd38a6cb79c668a8ede9b542ebffe", "sha256": "238b641089baa9cef808bbbb90a6e1207478d7657b79c3b3ef2ccad472f7beb7" }, "downloads": -1, "filename": "hooks4git-0.1.53.tar.gz", "has_sig": false, "md5_digest": "e0cbd38a6cb79c668a8ede9b542ebffe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8196, "upload_time": "2018-07-06T19:22:41", "url": "https://files.pythonhosted.org/packages/a8/ee/f899889db4bdcc749395d13a51c9e0a0d787246dd2bff7379c0538bfa826/hooks4git-0.1.53.tar.gz" } ], "0.1.56": [ { "comment_text": "", "digests": { "md5": "0ef748cdb5e8937d77bd8a88981cf44a", "sha256": "0fbbada2781e45bc8996fefadd0535b6716aebfb23c1850508ed638f2f7d35ba" }, "downloads": -1, "filename": "hooks4git-0.1.56.tar.gz", "has_sig": false, "md5_digest": "0ef748cdb5e8937d77bd8a88981cf44a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8219, "upload_time": "2018-07-06T19:45:25", "url": "https://files.pythonhosted.org/packages/d1/80/0ff109db0c3040527bc2c41e365b25b22d1792b0b1321a23cfa592a3a0a9/hooks4git-0.1.56.tar.gz" } ], "0.1.59": [ { "comment_text": "", "digests": { "md5": "976bdd11beea519fff92c788a3efa221", "sha256": "14f7d5090626ee000bd4551c4b457bf85d30603af4801b6073caa5ca83970087" }, "downloads": -1, "filename": "hooks4git-0.1.59.tar.gz", "has_sig": false, "md5_digest": "976bdd11beea519fff92c788a3efa221", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8439, "upload_time": "2018-07-06T21:26:25", "url": "https://files.pythonhosted.org/packages/ae/58/ab9e989aa10ddd92054b9650a3df4fa0d34c325d56d4c938ea04928656dc/hooks4git-0.1.59.tar.gz" } ], "0.1.64": [ { "comment_text": "", "digests": { "md5": "2af589b95cf3b8ae49e7870d70377961", "sha256": "fb613c50c515fb8a892543836498ad989128a3e1cd57c6282ac0a91c441cf55d" }, "downloads": -1, "filename": "hooks4git-0.1.64.tar.gz", "has_sig": false, "md5_digest": "2af589b95cf3b8ae49e7870d70377961", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9189, "upload_time": "2018-07-09T12:23:02", "url": "https://files.pythonhosted.org/packages/41/c4/58964acd358f16a50d0dd51f502470ceb786a72d54018f09925a1906f0b8/hooks4git-0.1.64.tar.gz" } ], "0.1.67": [ { "comment_text": "", "digests": { "md5": "2f3896626f648641562755e38ed9c063", "sha256": "04ca61368e6f30652ba2deca485c0db3fefae72ac70354739e20b94f6dfdc69a" }, "downloads": -1, "filename": "hooks4git-0.1.67.tar.gz", "has_sig": false, "md5_digest": "2f3896626f648641562755e38ed9c063", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9320, "upload_time": "2018-07-09T13:23:35", "url": "https://files.pythonhosted.org/packages/12/51/f8c5145f97b3add2e48d74620f325647d87576857d291210be5ecc1af19f/hooks4git-0.1.67.tar.gz" } ], "0.1.81": [ { "comment_text": "", "digests": { "md5": "3a39a9e256e3e15b17d83bbdb2ddde58", "sha256": "b7abd92fbb1ab0bfdbb27c187dc56f820e16b361f2b619757408be30833859f7" }, "downloads": -1, "filename": "hooks4git-0.1.81.tar.gz", "has_sig": false, "md5_digest": "3a39a9e256e3e15b17d83bbdb2ddde58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11196, "upload_time": "2018-07-11T16:46:32", "url": "https://files.pythonhosted.org/packages/b1/d0/f5c62a2b5f58d3226cddb79f64eae24debb55ff825d8a9ece6caa4f24dc5/hooks4git-0.1.81.tar.gz" } ], "0.1.84": [ { "comment_text": "", "digests": { "md5": "5c822f204ae2df0a7b748d1127025278", "sha256": "0b184029adfc287c170d9fb64d6c87277b1dc2802bcd5a752d59ddba82082654" }, "downloads": -1, "filename": "hooks4git-0.1.84.tar.gz", "has_sig": false, "md5_digest": "5c822f204ae2df0a7b748d1127025278", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11203, "upload_time": "2018-07-16T12:50:45", "url": "https://files.pythonhosted.org/packages/d6/f4/22894a2ca7a09b3327b23f079b876ca5691c3cc8ce84eaed02f87eafb189/hooks4git-0.1.84.tar.gz" } ], "0.1.90": [ { "comment_text": "", "digests": { "md5": "de263fa8b9d7c2dc01eafadac585fc58", "sha256": "c889263de47443ab761fa9effd918987f13fa51e3e8392834ab0ce8b6c5e5559" }, "downloads": -1, "filename": "hooks4git-0.1.90.tar.gz", "has_sig": false, "md5_digest": "de263fa8b9d7c2dc01eafadac585fc58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11152, "upload_time": "2018-07-17T18:11:25", "url": "https://files.pythonhosted.org/packages/d1/73/d99ebb4c7d8fe737046539150611c1687952466be199d11c5b9ea877c660/hooks4git-0.1.90.tar.gz" } ], "0.2.131": [ { "comment_text": "", "digests": { "md5": "c8c5fd17469c5203a1aee7bb0cdbc6d7", "sha256": "770d16a3d8fd72b0fa2bfe2e88b3017c45b4117d6dc576a1c0e64d2fb2807294" }, "downloads": -1, "filename": "hooks4git-0.2.131.tar.gz", "has_sig": false, "md5_digest": "c8c5fd17469c5203a1aee7bb0cdbc6d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13777, "upload_time": "2019-03-21T12:41:25", "url": "https://files.pythonhosted.org/packages/97/41/ce65811220b16f9938efc095431adc0c434f71b3296d7ae30298f7a49e5d/hooks4git-0.2.131.tar.gz" } ], "0.2.138": [ { "comment_text": "", "digests": { "md5": "7459a7567234924bafbf07de1207715a", "sha256": "70a617af2f200ef5ba82656be4f21bdce542dd9b40fb2c98ae4f2d0e0fe385cd" }, "downloads": -1, "filename": "hooks4git-0.2.138.tar.gz", "has_sig": false, "md5_digest": "7459a7567234924bafbf07de1207715a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14032, "upload_time": "2019-03-21T18:20:35", "url": "https://files.pythonhosted.org/packages/e0/4e/3b9306b0a243f604f5778a2b9e76fc8af6938c5e79478552b7fdc1ae72fb/hooks4git-0.2.138.tar.gz" } ], "0.2.140": [ { "comment_text": "", "digests": { "md5": "0e4ab1c9ebb82409b5c53e5f79bacb97", "sha256": "1c1d0595c2aafe7041ed52c71bd1dbdfad6e591c7fcf469f9d8181a0d2a16fc6" }, "downloads": -1, "filename": "hooks4git-0.2.140.tar.gz", "has_sig": false, "md5_digest": "0e4ab1c9ebb82409b5c53e5f79bacb97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14092, "upload_time": "2019-03-24T20:20:45", "url": "https://files.pythonhosted.org/packages/c3/06/a0c072768b933f80a1fedeac76dbb44a2c8151ba134c64df2991074b6415/hooks4git-0.2.140.tar.gz" } ], "0.2.157": [ { "comment_text": "", "digests": { "md5": "0608e8857dd3a380aafb51b3341bc303", "sha256": "f2aa4f96beadd18afabeccc0fed746dcb84c598f3f631c57e382ece28e8b3d31" }, "downloads": -1, "filename": "hooks4git-0.2.157.tar.gz", "has_sig": false, "md5_digest": "0608e8857dd3a380aafb51b3341bc303", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12891, "upload_time": "2019-04-09T18:07:20", "url": "https://files.pythonhosted.org/packages/3c/57/6a00685847cc3c43a3ee26c6af05ee8b337793fc920d4fe5b6c636b3ab8b/hooks4git-0.2.157.tar.gz" } ], "0.3.161": [ { "comment_text": "", "digests": { "md5": "f3af4c2bde50247d79cf1e99b938b3e9", "sha256": "dea8ec7aab5346a3f2768123f75749f3753df93412d5421ae0578538729405ac" }, "downloads": -1, "filename": "hooks4git-0.3.161.tar.gz", "has_sig": false, "md5_digest": "f3af4c2bde50247d79cf1e99b938b3e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13351, "upload_time": "2019-04-10T17:04:41", "url": "https://files.pythonhosted.org/packages/0f/cc/685bd85e8aefe5e32221559c0f6e4a849fdee4b12f061d899d76badc1c7e/hooks4git-0.3.161.tar.gz" } ], "0.3.163": [ { "comment_text": "", "digests": { "md5": "848e4f59260ba2b3fc1277363446fd1c", "sha256": "37b25fa0a9f855b59df8907c96e3c8ddfb9095315275f651c4fb1025f919faaf" }, "downloads": -1, "filename": "hooks4git-0.3.163.tar.gz", "has_sig": false, "md5_digest": "848e4f59260ba2b3fc1277363446fd1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13373, "upload_time": "2019-04-11T13:35:20", "url": "https://files.pythonhosted.org/packages/53/65/3506e5efc245bf49ad4ddcc41bb3b487c9611f7c363ef5928a7bc8e438bf/hooks4git-0.3.163.tar.gz" } ], "0.3.188": [ { "comment_text": "", "digests": { "md5": "527e129054fbc8c48a16995ed099d13a", "sha256": "db741c9003df78acaa0df0113099f26a78aa703e7e1c9ebc52e0250ee8dcca7d" }, "downloads": -1, "filename": "hooks4git-0.3.188.tar.gz", "has_sig": false, "md5_digest": "527e129054fbc8c48a16995ed099d13a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14013, "upload_time": "2019-04-24T19:31:14", "url": "https://files.pythonhosted.org/packages/ef/75/7c909cdf11c08fba4bc1903c560144c618d2a0af4caed969da6eb3a18339/hooks4git-0.3.188.tar.gz" } ], "0.3.205": [ { "comment_text": "", "digests": { "md5": "27a7debcdbe0a5b5e2f7fe590ff9bbcc", "sha256": "e3fdd5b4dc7f628d132e85330ed5192a0f153f8a903a5f2d2d97514dcee6a6dc" }, "downloads": -1, "filename": "hooks4git-0.3.205.tar.gz", "has_sig": false, "md5_digest": "27a7debcdbe0a5b5e2f7fe590ff9bbcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13861, "upload_time": "2019-05-07T11:06:55", "url": "https://files.pythonhosted.org/packages/e3/b6/585946fb2478fd56ba1d4135df58b5651d3d1b17777ea0f527e0f10450c6/hooks4git-0.3.205.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "27a7debcdbe0a5b5e2f7fe590ff9bbcc", "sha256": "e3fdd5b4dc7f628d132e85330ed5192a0f153f8a903a5f2d2d97514dcee6a6dc" }, "downloads": -1, "filename": "hooks4git-0.3.205.tar.gz", "has_sig": false, "md5_digest": "27a7debcdbe0a5b5e2f7fe590ff9bbcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13861, "upload_time": "2019-05-07T11:06:55", "url": "https://files.pythonhosted.org/packages/e3/b6/585946fb2478fd56ba1d4135df58b5651d3d1b17777ea0f527e0f10450c6/hooks4git-0.3.205.tar.gz" } ] }