git-pre-commit-hook

A package to prevent Dependency Confusion attacks against Yandex.


License
MIT
Install
pip install git-pre-commit-hook==66.0.3

Documentation

Hook that blocks bad commits. Useful for Python-development.

Installation

You can install, upgrade, uninstall git-pre-commit-hook with these commands:

$ pip install git-pre-commit-hook
$ pip install --upgrade git-pre-commit-hook
$ pip uninstall git-pre-commit-hook

Features

  • Work fine with initial commit.
  • Work fine with all filenames.
  • Work with index contents instead of working copy.
  • Plugin architecture: adding new checks is easy.
  • Builtin plugins for:

Examples

Install hook to current Git-repository:

git-pre-commit-hook install \
  --plugin flake8 \
  --plugin frosted \
  --plugin json \
  --plugin file_size \
  --plugin rst \
  --plugin yaml

Installed hook rejects commits:

  • if any file has size greater than 10MB
  • if files with .json extension contains invalid JSON
  • if Python-code doesn't pass check with flake8 (with pep8-naming)
  • if Python-code doesn't pass check with frosted
  • if files with .rst extension contains invalid RST
  • if files with .yaml extension contains invalid YAML

List available plugins:

git-pre-commit-hook list-plugins

Show information about plugin:

git-pre-commit-hook show-plugin-info json

Contributing

  1. Fork git-pre-commit-hook

  2. Clone your fork

  3. Install tox:

    pip install tox
    
  4. Create development environment:

    tox -e devenv
    source devenv/bin/activate
    
  5. Edit code

  6. Run tests:

    tox
    
  7. Send pull request

Links