Some stats about the usage of pre-commit hooks on GitHub.
These are generated using GitHub's code search.
The results of my crawling are checked in under all_repos.json
(listing all
public repos revealed by the search that use pre-commit) and hook_users.json
(showing which repos use which particular hook).
At the time of writing (January 2017), the most popular hooks are:
The most popular hooks are:
460 github.com/pre-commit/pre-commit-hooks#trailing-whitespace
390 github.com/pre-commit/pre-commit-hooks#check-yaml
380 github.com/pre-commit/pre-commit-hooks#end-of-file-fixer
321 github.com/pre-commit/pre-commit-hooks#check-json
318 github.com/pre-commit/pre-commit-hooks#flake8
309 github.com/pre-commit/pre-commit-hooks#debug-statements
290 github.com/pre-commit/pre-commit-hooks#check-added-large-files
285 github.com/pre-commit/pre-commit-hooks#check-merge-conflict
233 github.com/pre-commit/pre-commit-hooks#requirements-txt-fixer
210 github.com/pre-commit/pre-commit-hooks#autopep8-wrapper
190 github.com/pre-commit/pre-commit-hooks#name-tests-test
173 github.com/pre-commit/pre-commit-hooks#check-docstring-first
151 github.com/pre-commit/pre-commit-hooks#check-xml
150 github.com/pre-commit/pre-commit-hooks#check-case-conflict
137 github.com/pre-commit/pre-commit-hooks#detect-private-key
134 github.com/pre-commit/pre-commit-hooks#double-quote-string-fixer
127 github.com/pre-commit/pre-commit-hooks#check-ast
111 github.com/FalconSocial/pre-commit-python-sorter#python-import-sorter
97 github.com/asottile/reorder_python_imports#reorder-python-imports
95 github.com/pre-commit/pre-commit#validate_config
94 github.com/pre-commit/pre-commit-hooks#pretty-format-json
87 github.com/pre-commit/pre-commit#validate_manifest
72 github.com/pre-commit/mirrors-scss-lint#scss-lint
71 github.com/pre-commit/pre-commit-hooks#check-symlinks
64 github.com/pre-commit/mirrors-pylint#pylint
58 github.com/pre-commit/pre-commit-hooks.git#end-of-file-fixer
55 github.com/pre-commit/pre-commit-hooks.git#trailing-whitespace
53 github.com/pre-commit/pre-commit-hooks.git#debug-statements
45 github.com/pre-commit/pre-commit-hooks.git#check-yaml
44 github.com/pre-commit/pre-commit-hooks#fix-encoding-pragma
44 github.com/pre-commit/pre-commit-hooks.git#flake8
40 github.com/asottile/reorder_python_imports.git#reorder-python-imports
39 github.com/pre-commit/pre-commit-hooks.git#check-json
38 github.com/pre-commit/pre-commit-hooks.git#autopep8-wrapper
38 github.com/pre-commit/pre-commit-hooks.git#check-docstring-first
37 github.com/pre-commit/pre-commit-hooks.git#requirements-txt-fixer
28 local#piprot
28 github.com/adarnimrod/ansible-pre-commit.git#ansible-syntax-check
28 github.com/willthames/ansible-lint#ansible-lint
28 github.com/detailyang/pre-commit-shell#shell-lint
27 github.com/pre-commit/pre-commit-hooks.git#check-added-large-files
26 github.com/FalconSocial/pre-commit-mirrors-pep257#pep257
25 github.com/pre-commit/mirrors-jshint#jshint
23 github.com/pre-commit/pre-commit-hooks.git#check-merge-conflict
23 github.com/pre-commit/pre-commit-hooks#check-byte-order-marker
22 github.com/pre-commit/pre-commit-hooks.git#detect-private-key
22 github.com/dgnest/mirrors-pylint#pylint
22 github.com/Lucas-C/pre-commit-hooks#remove-tabs
20 github.com/pre-commit/pre-commit-hooks.git#name-tests-test
18 github.com/pre-commit/mirrors-eslint#eslint
17 github.com/pre-commit/pre-commit-hooks.git#double-quote-string-fixer
17 github.com/pre-commit/pre-commit-hooks.git#check-xml
14 github.com/dnephin/pre-commit-golang#go-fmt
14 github.com/pre-commit/mirrors-yapf#yapf
14 github.com/dnephin/pre-commit-golang#go-vet
12 github.com/pre-commit/pre-commit.git#validate_config
12 github.com/pre-commit/pre-commit.git#validate_manifest
12 local#pylint
12 github.com/dnephin/pre-commit-golang#go-lint
11 github.com/Lucas-C/pre-commit-hooks.git#remove-tabs
11 github.com/willthames/ansible-lint.git#ansible-lint
10 github.com/pre-commit/pre-commit-hooks.git#check-symlinks
10 github.com/Lucas-C/pre-commit-hooks#remove-crlf
10 github.com/pre-commit/pre-commit-hooks.git#check-byte-order-marker
10 github.com/Lucas-C/pre-commit-hooks#forbid-tabs
10 github.com/pre-commit/pre-commit-hooks.git#check-ast
9 github.com/pre-commit/pre-commit-hooks#detect-aws-credentials
8 github.com/hootsuite/pre-commit-php.git#php-cs
8 github.com/containous/pre-commit-hooks#goFmt
8 github.com/ivanlei/pre-commit-python-sorter#python-import-sorter
8 github.com/hootsuite/pre-commit-php.git#php-lint
8 github.com/containous/pre-commit-hooks#goLint
7 github.com/pre-commit/pre-commit-hooks.git#fix-encoding-pragma
6 github.com/chriskuehl/pre-commit-hooks.git#end-of-file-fixer
6 github.com/chriskuehl/pre-commit-hooks.git#flake8
6 github.com/chriskuehl/pre-commit-hooks.git#double-quote-string-fixer
6 github.com/Lucas-C/pre-commit-hooks.git#remove-crlf
6 github.com/chriskuehl/pre-commit-hooks.git#check-xml
6 github.com/chriskuehl/pre-commit-hooks.git#detect-private-key
6 github.com/chriskuehl/pre-commit-hooks.git#debug-statements
6 github.com/chriskuehl/pre-commit-hooks.git#check-added-large-files
6 github.com/chriskuehl/pre-commit-hooks.git#check-json
6 github.com/chriskuehl/pre-commit-hooks.git#name-tests-test
6 github.com/chriskuehl/pre-commit-hooks.git#check-yaml
6 github.com/chriskuehl/pre-commit-hooks.git#autopep8-wrapper
6 github.com/chriskuehl/pre-commit-hooks.git#requirements-txt-fixer
6 github.com/Lucas-C/pre-commit-hooks#forbid-crlf
6 github.com/chriskuehl/pre-commit-hooks.git#trailing-whitespace
6 github.com/chriskuehl/pre-commit-hooks.git#check-merge-conflict
6 github.com/chriskuehl/pre-commit-hooks.git#check-docstring-first
5 github.com/gabriel/pre-commit-golang#go-metalinter
5 local#py.test
5 github.com/craig-davis/pre-commit-php.git#php-cpd
5 www.shore.co.il/git/shell-pre-commit/#shell-lint
5 github.com/craig-davis/pre-commit-php.git#php-md
5 github.com/chriskuehl/reorder_python_imports.git#reorder-python-imports
5 github.com/chriskuehl/pre-commit-hooks-1.git#remove-tabs
5 git.vshn.net/vshn-puppet/githooks.git#puppet
5 github.com/Lucas-C/pre-commit-hooks-safety#python-safety-dependencies-check
5 github.com/reyoung/mirrors-yapf.git#yapf
5 github.com/gabriel/pre-commit-golang#go-fmt
5 github.com/pre-commit/mirrors-autopep8#autopep8
5 github.com/pre-commit/pre-commit-hooks.git#check-case-conflict
4 github.com/xiachufang/pre-commit-hooks.git#end-of-file-fixer
4 github.com/xiachufang/pre-commit-hooks.git#flake8
4 github.com/xiachufang/pre-commit-hooks.git#debug-statements
4 github.com/xiachufang/pre-commit-hooks.git#check-yaml
4 github.com/xiachufang/pre-commit-hooks.git#check-case-conflict
4 git.yelpcorp.com/yelp_pre_commit_hooks#fix-encoding-pragma
4 github.com/xiachufang/pre-commit-hooks.git#detect-private-key
4 git.yelpcorp.com/yelp_pre_commit_hooks#use-except-as
4 github.com/xiachufang/pre-commit-hooks.git#trailing-whitespace
4 github.com/xiachufang/pre-commit-hooks.git#autopep8-wrapper
4 github.com/xiachufang/pre-commit-hooks.git#check-xml
4 local#check-default-variables
4 local#check-bash-syntax
4 git.yelpcorp.com/yelp_pre_commit_hooks#check_mock_methods
4 github.com/xiachufang/pre-commit-hooks.git#check-ast
4 github.com/xiachufang/pre-commit-hooks.git#requirements-txt-fixer
4 github.com/xiachufang/pre-commit-hooks.git#check-merge-conflict
4 github.com/dnephin/pre-commit-golang#no-go-testing
4 github.com/xiachufang/pre-commit-hooks.git#check-docstring-first
4 github.com/dnephin/pre-commit-golang#validate-toml
4 git.yelpcorp.com/yelp_pre_commit_hooks#httplib-https-connection
4 github.com/xiachufang/pre-commit-hooks.git#check-json
4 github.com/adarnimrod/shell-pre-commit#shell-lint
4 github.com/xiachufang/pre-commit-hooks.git#fix-encoding-pragma
4 github.com/hootsuite/pre-commit-php.git#php-unit
3 github.com/guykisel/prospector-mirror#prospector
3 git.yelpcorp.com/mirrors/asottile/reorder_python_imports#reorder-python-imports
3 local#gofmt
3 github.com/PaddlePaddle/clang-format-pre-commit-hook.git#clang-formater
3 github.com/pre-commit/pre-commit-hooks#forbid-new-submodules
3 github.com/Lucas-C/pre-commit-hooks.git#forbid-crlf
3 github.com/pre-commit/pre-commit-hooks.git#detect-aws-credentials
3 git.yelpcorp.com/yelp_pre_commit_hooks#check-imports
3 github.com/pre-commit/mirrors-fixmyjs#fixmyjs
3 github.com/xiachufang/pre-commit-hooks.git#check-added-large-files
3 github.com/xiachufang/pre-commit-hooks.git#pretty-format-json
3 github.com/FalconSocial/pre-commit-python-sorter.git#python-import-sorter
3 github.com/pre-commit/mirrors-puppet-lint#puppet-lint
3 github.com/hootsuite/pre-commit-php.git#php-lint-all
3 github.com/pre-commit/mirrors-eslint.git#eslint
3 github.com/pre-commit/mirrors-csslint#csslint
3 git.yelpcorp.com/yelp_pre_commit_hooks#check-indentation
3 local#mix-test
2 github.com/chuyeow/golang-pre-commit-hooks#go-fmt
2 github.com/magicmark/pre-commit-es6-imports-reorder#reorder-es6-imports
2 git.yelpcorp.com/mirrors/pre-commit/pre-commit-hooks#trailing-whitespace
2 local#pep257
2 github.com/pre-commit/mirrors-ruby-lint#ruby-lint
2 github.com/chuyeow/golang-pre-commit-hooks#go-vet
2 local#isort
2 github.com/Lucas-C/pre-commit-hooks#forbid-html-img-without-alt-text
2 local#eslint
2 github.com/marick/pre-commit-hooks#prohibit-suspicious-patterns
2 github.com/antonbabenko/pre-commit-terraform#terraform_fmt
2 github.com/pricematch/mirrors-rubocop#rubocop
2 github.com/Lucas-C/pre-commit-hooks-bandit#python-bandit-vulnerability-check
2 git.yelpcorp.com/mirrors/pre-commit/pre-commit-hooks#debug-statements
2 git.yelpcorp.com/mirrors/pre-commit/pre-commit-hooks#check-yaml
2 github.com/zonito/command-hook.git#command
2 github.com/Lucas-C/pre-commit-hooks-lxml#forbid-html-img-without-alt-text
2 git.yelpcorp.com/mirrors/pre-commit/pre-commit-hooks#end-of-file-fixer
2 github.com/chuyeow/golang-pre-commit-hooks#go-metalinter
2 github.com/python-telegram-bot/mirrors-yapf#yapf
2 local#test
2 local#system
2 github.com/chuyeow/golang-pre-commit-hooks#go-lint
2 github.com/marick/pre-commit-hooks#prohibit-suspicious-files
2 git.yelpcorp.com/mirrors/pre-commit/pre-commit-hooks#flake8
2 github.com/pre-commit/pre-commit-hooks.git#pretty-format-json
2 github.com/pricematch/pricematch-pre-commit-hooks#do_not_commit
2 github.com/trbs/pre-commit-hooks-trbs.git#forbid-executables
2 local#nosetests
2 github.com/pre-commit/mirrors-coffeelint#coffeelint
2 github.com/guykisel/pre-commit-robotframework-tidy#robotframework-tidy-wrapper
2 local#no-top-level-header
2 local#mix_test
2 local#flake8
1 github.com/a-sk/mirrors-isort#isort
1 github.com/rwxlabs/tf-pre-commit#terraform_validate
1 github.com/Coverfox/pre-commit-hooks#check-json
1 local#flow
1 github.com/Coverfox/pre-commit-hooks#flake8
1 github.com/guykisel/pre-commit-reject-large-files#reject-large-files
1 github.com/bjbishop/commit_tally#commit_tally
1 github.com/marick/pre-commit-hooks#only-branch-pushes
1 github.com/Lucas-C/pre-commit-hooks-html#validate-html
1 github.com/AStrangerGravity/pre-commit-hooks#end-of-file-fixer
1 github.com/hootsuite/pre-commit-php.git#php-cs-fixer
1 /home/vagrant/code/pre-commit-hooks#mix-compile
1 local#lint
1 github.com/containous/pre-commit-hooks#goErrcheck
1 local#check-eslint
1 github.com/pre-commit/pre-commit-hooks#pyflakes
1 github.com/AStrangerGravity/pre-commit-hooks#remove-tabs
1 local#angular-forbid-ngmodel-with-no-dot
1 local#ansible-lint
1 github.com/bjbishop/git-secrets#git-secrets
1 github.com/bukzor/pre-commit-system-hook.git#system
1 local#make-test
1 local#make-check-style
1 github.com/asottile/cheetah_lint#cheetah-reorder-imports
1 github.com/jinji-lukaishun/pep8-mirror#pep8
1 github.com/bwbaugh/haskell-pre-commit-hooks/#hlint
1 github.com/mad01/pre-commit-pep8#pep8
1 github.com/innovative-media/pre-commit-php.git#php-cs
1 local#shell-lint
1 github.com/joblocal/pre-commit-php.git#php-unit
1 local#js-forbid-const
1 github.com/Lab41/verboten_words.git#verboten-words
1 github.com/jordant/rubocop-pre-commit-hook.git#check-rubocop
1 local#angular-forbid-ngrepeat-without-trackby
1 github.com/lagarciag/pre-commit-golang.git#go-codenanny
1 github.com/lagarciag/pre-commit-golang.git#go-fmt
1 github.com/TooAngel/pre-commit-hooks.git#flake8
1 github.com/mythmon/mirrors-eslint#eslint
1 github.com/Coverfox/pre-commit-hooks#trailing-whitespace
1 /home/vagrant/code/pre-commit-hooks#mix-test
1 git.apertron.net/cgit.cgi/hooks/#yamlcheck
1 github.com/joblocal/pre-commit-php.git#php-cs
1 github.com/bwbaugh/haskell-pre-commit-hooks/#stylish-haskell
1 github.com/Harwood/pre-commit-hooks#update-travis-ci
1 local#remove-unicode-non-breaking-spaces
1 github.com/Coverfox/pre-commit-hooks#check-added-large-files
1 github.com/asottile/cheetah_lint#cheetah-flake
1 github.com/Coverfox/pre-commit-hooks#check-merge-conflict
1 github.com/keybase/pre-commit-golang.git#go-fmt
1 github.com/ixisandyr/pre-commit-php.git#php-lint-all
1 local#forbid-unicode-non-breaking-spaces
1 local#mix_dogma
1 github.com/graddfril/precommit-yapf#yapf
1 git.yelpcorp.com/yelp_pre_commit_hooks#byte_order_mark
1 local#app-templates-prefixed-with-app-name
1 github.com/lagarciag/pre-commit-golang.git#py-yapf
1 local#gulp
1 github.com/AStrangerGravity/pre-commit-hooks#trailing-whitespace
1 github.com/Coverfox/pre-commit-hooks#pretty-format-json
1 github.com/gisce/pre-commit-jscs#jscs
1 github.com/keybase/pre-commit-golang.git#go-lint
1 github.com/goto-ru/precommit-yapf#yapf
1 github.com/rwxlabs/tf-pre-commit#terraform_fmt
1 local#clang-format
1 local#js-forbid-let
1 git.yelpcorp.com/mirrors/pre-commit/pre-commit-hooks#autopep8-wrapper
1 github.com/chriskuehl/puppet-pre-commit-hooks.git#puppet-validate
1 github.com/graddfril/precommit-prospector#prospector
1 github.com/AStrangerGravity/pre-commit-hooks#forbid-tabs
1 local#python-unit-tests
1 github.com/chriskuehl/travis.rb.git#travis-lint
1 github.com/d1ff/pre-commit-mypy#mypy
1 git.yelpcorp.com/mirrors/pre-commit/pre-commit-hooks#requirements-txt-fixer
1 github.com/lagarciag/pre-commit-golang.git#go-vet
1 /home/vagrant/code/pre-commit-hooks#mix-dogma
1 github.com/ugoodspeed/pre-commit-hooks#check-sh-file-permission
1 phabricator.intranet.studitemps.de/diffusion/B/kiss-pre-commit-hooks.git#partial-flake8
1 /home/vagrant/code/pre-commit-hooks#mix-escript
1 local#travis-lint
1 local#remove-en-dashes
1 local#check-tox
1 local#mix_escript
1 github.com/goto-ru/precommit-prospector#prospector
1 github.com/ixisandyr/pre-commit-php.git#php-cs
1 local#angular-forbid-apply
1 github.com/benjamin99Tsai/pre-commit-apiary.git#apiary-validation
1 github.com/scottybarr/pre-commit-js-beautify#js-beautify
1 github.com/chriskuehl/puppet-pre-commit-hooks.git#puppet-lint
1 github.com/lagarciag/pre-commit-golang.git#go-check-tests
1 github.com/refinery-platform/pre-commit-eslint#eslint
1 github.com/Coverfox/pre-commit-hooks#debug-statements
1 local#forbid-en-dashes
1 github.com/lagarciag/pre-commit-golang.git#go-lint
1 github.com/marick/pre-commit-hooks.git#only-branch-pushes
1 local#qmllint
1 github.com/rcmurphy/pre-commit-hooks.git#scalariform
1 github.com/elidupuis/mirrors-jscs#jscs
1 github.com/TooAngel/pre-commit-hooks.git#pep8
1 git.yelpcorp.com/mirrors/pre-commit/pre-commit-hooks#name-tests-test
1 local#make
1 github.com/pre-commit/scss-lint#scss-lint
1 github.com/hootsuite/pre-commit-php.git#php-cbf
1 local#check-markdown
1 github.com/adarnimrod/shell-pre-commit.git#shell-lint
1 github.com/bjbishop/commit_habitrpg#commit_habitrpg
1 github.com/danielwpz/pre-commit.git#echo
1 git.yelpcorp.com/yelp_pre_commit_hooks#stop-dollar-html
1 github.com/jstewmon/check-swagger#check-swagger
1 github.com/chriskuehl/puppet-pre-commit-hooks.git#erb-validate
1 git.yelpcorp.com/yelp_pre_commit_hooks#check-added-large-files
1 github.com/keybase/pre-commit-golang.git#go-vet
1 github.com/sanmai-NL/pre-commit-hooks_R.git#lintr
1 stash.netconomy.net/7999/~hgutmann/nc-precommit-hooks.git#eslint
- Create a python3 virtualenv and
pip install requirements.txt
. - Go create a throwaway GitHub user.
- Run
get_stats.py
. The results are cached as JSON files in the repo, so if you actually want to collect the data again, delete those first.