README.md 3.1 KB
Newer Older
Anthony Sottile's avatar
Anthony Sottile 已提交
1
[![Build Status](https://travis-ci.org/pre-commit/pre-commit-hooks.svg?branch=master)](https://travis-ci.org/pre-commit/pre-commit-hooks)
Anthony Sottile's avatar
Anthony Sottile 已提交
2
[![Coverage Status](https://img.shields.io/coveralls/pre-commit/pre-commit-hooks.svg?branch=master)](https://coveralls.io/r/pre-commit/pre-commit-hooks)
Anthony Sottile's avatar
Anthony Sottile 已提交
3
[![Build status](https://ci.appveyor.com/api/projects/status/dfcpng35u4g0r0t1/branch/master?svg=true)](https://ci.appveyor.com/project/asottile/pre-commit-hooks/branch/master)
Anthony Sottile's avatar
Anthony Sottile 已提交
4

Anthony Sottile's avatar
Anthony Sottile 已提交
5
6
7
8
9
pre-commit-hooks
==========

Some out-of-the-box hooks for pre-commit.

Anthony Sottile's avatar
Anthony Sottile 已提交
10
See also: https://github.com/pre-commit/pre-commit
Anthony Sottile's avatar
Anthony Sottile 已提交
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25


### Using pre-commit-hooks with pre-commit

Add this to your `.pre-commit-config.yaml`

    -   repo: git://github.com/pre-commit/pre-commit-hooks
        sha: ''  # Use the sha you want to point at
        hooks:
        -   id: trailing-whitespace
        # -   id: ...


### Hooks available

26
- `autopep8-wrapper` - Runs autopep8 over python source.
27
28
    - Ignore PEP 8 violation types with `args: ['-i', '--ignore=E000,...']` or
      through configuration of the `[pep8]` section in setup.cfg / tox.ini.
29
- `check-added-large-files` - Prevent giant files from being committed.
30
    - Specify what is "too large" with `args: ['--maxkb=123']` (default=500kB).
31
- `check-ast` - Simply check whether files parse as valid python.
32
33
34
35
- `check-case-conflict` - Check for files with names that would conflict on a
  case-insensitive filesystem like MacOS HFS+ or Windows FAT.
- `check-docstring-first` - Checks for a common error of placing code before
  the docstring.
Anthony Sottile's avatar
Anthony Sottile 已提交
36
- `check-json` - Attempts to load all json files to verify syntax.
37
- `check-merge-conflict` - Check for files that contain merge conflict strings.
Anthony Sottile's avatar
Anthony Sottile 已提交
38
- `check-xml` - Attempts to load all xml files to verify syntax.
Anthony Sottile's avatar
Anthony Sottile 已提交
39
40
- `check-yaml` - Attempts to load all yaml files to verify syntax.
- `debug-statements` - Check for pdb / ipdb / pudb statements in code.
41
- `detect-aws-credentials` - Checks for the existence of AWS secrets that you have set up with the AWS CLI.
42
43
44
- `detect-private-key` - Checks for the existence of private keys.
- `double-quote-string-fixer` - This hook replaces double quoted strings
  with single quoted strings.
Anthony Sottile's avatar
Anthony Sottile 已提交
45
- `end-of-file-fixer` - Makes sure files end in a newline and only a newline.
46
- `fix-encoding-pragma` - Add # -*- coding: utf-8 -*- to the top of python files
47
48
49
50
- `flake8` - Run flake8 on your python files.
- `name-tests-test` - Assert that files in tests/ end in `_test.py`.
    - Use `args: ['--django']` to match `test*.py` instead.
- `pyflakes` - Run pyflakes on your python files.
51
- `pretty-format-json` - Checks that all your JSON files are pretty
52
- `requirements-txt-fixer` - Sorts entries in requirements.txt
Anthony Sottile's avatar
Anthony Sottile 已提交
53
- `trailing-whitespace` - Trims trailing whitespace.
54
55
56
57
    - Markdown linebreak trailing spaces preserved for `.md` and`.markdown`;
      use `args: ['--markdown-linebreak-ext=txt,text']` to add other extensions,
      `args: ['--markdown-linebreak-ext=*']` to preserve them for all files,
      or `args: ['--no-markdown-linebreak-ext']` to disable and always trim.
Anthony Sottile's avatar
Anthony Sottile 已提交
58
59
60
61
62
63
64

### As a standalone package

If you'd like to use these hooks, they're also available as a standalone
package.

Simply `pip install pre-commit-hooks`