Metadata-Version: 2.1
Name: autohooks
Version: 1.0.2
Summary: Library for managing git hooks
Home-page: https://github.com/bjoernricks/autohooks
Author: Greenbone Networks GmbH
Author-email: info@greenbone.net
License: UNKNOWN
Description: ![Greenbone Logo](https://www.greenbone.net/wp-content/uploads/gb_logo_resilience_horizontal.png)
        
        # Autohooks
        
        [![PyPI release](https://img.shields.io/pypi/v/autohooks.svg)](https://pypi.org/project/autohooks/)
        
        Library for managing and writing [git hooks](https://git-scm.com/docs/githooks)
        in Python
        
        ## Why?
        
        Several outstanding libraries for managing and executing git hooks already
        exist. To name few: [husky](https://github.com/typicode/husky),
        [lint-staged](https://github.com/okonet/lint-staged),
        [precise-commits](https://github.com/nrwl/precise-commits) or
        [pre-commit](https://github.com/pre-commit/pre-commit).
        
        But either they need another interpreter besides python (like husky) or they are
        too ambiguous (like pre-commit). pre-commit is written in python but has support
        hooks written in all kind of languages. Also it maintains the dependencies by
        itself and doesn't install in the current environment.
        
        ## Solution
        
        Autohooks is a pure python library that installs a minimal
        [executable git hook](https://github.com/bjoernricks/autohooks/blob/master/autohooks/precommit/template).
        If autohooks isn't installed in your current python path the hooks aren't
        executed. So autohooks is always opt-in by installing the package into your
        current development environment. It would be even possible to run different
        versions of autohooks by switching the environment.
        
        ## Installation
        
        For the installation of autohooks three steps are necessary:
        
        1. Install the autohooks package into your current environment
        2. Activate the [git hooks](https://git-scm.com/docs/githooks)
        3. Configure the plugins to be run
        
        ### Install autohooks python package
        
        For installing the autohooks python package, using
        [pipenv](https://pipenv.readthedocs.io/en/latest/) is highly recommended.
        
        To install autohooks as a development dependency run
        
        ```sh
        pipenv install --dev autohooks
        ```
        
        Alternatively autohooks can be installed directly from GitHub
        
        ```sh
        pipenv install --dev -e git+https://github.com/bjoernricks/autohooks#egg=autohooks
        ```
        
        ### Activating the git hooks
        
        If autohooks is installed from git or a source tarball, the git hooks should be
        activated automatically. The activation can be verified by running e.g.
        `autohooks check`.
        
        Installing autohooks from a [wheel](https://www.python.org/dev/peps/pep-0427/)
        package will **NOT** activate the git commit hooks.
        
        To manually activate the git hooks you can run
        ```sh
        pipenv run autohooks activate
        ```
        
        ### Configure plugins to be run
        
        To actually run an action on git hooks, autohooks plugins have to be configured.
        Autohooks uses the *pyproject.toml* file specified in [PEP518](https://www.python.org/dev/peps/pep-0518/)
        for its configuration. Adding a *[tool.autohooks]* section allows to set python
        modules to be run on a specific git hook.
        
        Example *pyproject.toml*:
        ```toml
        [build-system]
        requires = ["setuptools", "wheel"]
        
        [tool.autohooks]
        pre-commit = ["autohooks.plugins.black"]
        ```
        
        ## Plugins
        
        * Python code formatting via [black](https://github.com/bjoernricks/autohooks-plugin-black)
        
        * Python code linting via [pylint](https://github.com/bjoernricks/autohooks-plugin-pylint)
        
        ## Maintainer
        
        This project is maintained by [Greenbone Networks GmbH](https://www.greenbone.net/).
        
        ## Contributing
        
        Your contributions are highly appreciated. Please
        [create a pull request](https://github.com/bjoernricks/autohooks/pulls)
        on GitHub. Bigger changes need to be discussed with the development team via the
        [issues section at GitHub](https://github.com/bjoernricks/autohooks/issues)
        first.
        
        ## License
        
        Copyright (C) 2019 [Greenbone Networks GmbH](https://www.greenbone.net/)
        
        Licensed under the [GNU General Public License v3.0 or later](LICENSE).
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Version Control :: Git
Requires-Python: >=3.5
Description-Content-Type: text/markdown
