Basic configuration

To use git-pylint-commit-hook in a project, create a new file under /project/root/.git/hooks/pre-commit and add the following to that file:

#!/usr/bin/env bash

Save the file and make it executable:

chmod +x .git/hooks/pre-commit

Your Python files should now be checked upon commit.

Command line options

The git-pylint-commit-hook can be configured using command line options. The command line options are:

--limit LIMIT         Score limit, files with a lower score will stop the
                      commit. Default: 8.0
--pylint PYLINT       Path to pylint executable. Default: pylint
--pylintrc PYLINTRC   Path to pylintrc file. Options in the pylintrc will
                      override the command line parameters. Default:
                      pylintsearch order
--pylint-params PYLINT_PARAMS
                      Custom pylint parameters to add to the pylint command
--suppress-report     Suppress report output if pylint fails
                      Show violations in case of pass as well
--version             Print current version number
                      Add regex to blacklist files or directories, allowing
                      to avoid running pylint those files.
--stash               Stash any unstaged changes while linting (changes are
                      unstashed automatically unless the process is forcibly

You can simply append those to the command created in the Basic configuration above.

Support for .pylintrc files

git-pylint-commit-hook will automatically find your pylint configuration files, according to the pylint configuration file default read order. Any configuration found for the project will be used in the git-pylint-commit-hook.

You can also define a custom pylint configuration file using the --pylintrc command line option.

pylint configuration

Settings are loaded by default from the .pylintrc file in the root of your repo.


command is for the actual command, for instance if pylint is not installed globally, but is in a virtualenv inside the project itself.

params lets you pass custom parameters to pylint

limit is the lowest value which you want to allow for a pylint score. Any lower than this, and the script will fail and won’t commit.

Any of these can be bypassed directly in the pre-commit hook itself. You can also set a different default place to look for the pylintrc file.