From ae5b74ad38d6d9ccbe57581d7df63b72adb5c0ea Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Fri, 3 Nov 2017 09:28:57 -0700 Subject: [PATCH] always_run hooks always apply to the repository --- pre_commit/meta_hooks/check_hooks_apply.py | 2 ++ tests/meta_hooks/check_hooks_apply_test.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/pre_commit/meta_hooks/check_hooks_apply.py b/pre_commit/meta_hooks/check_hooks_apply.py index 8c9a92d8..20d7f069 100644 --- a/pre_commit/meta_hooks/check_hooks_apply.py +++ b/pre_commit/meta_hooks/check_hooks_apply.py @@ -14,6 +14,8 @@ def check_all_hooks_match_files(config_file): for repo in runner.repositories: for hook_id, hook in repo.hooks: + if hook['always_run']: + continue include, exclude = hook['files'], hook['exclude'] filtered = _filter_by_include_exclude(files, include, exclude) types, exclude_types = hook['types'], hook['exclude_types'] diff --git a/tests/meta_hooks/check_hooks_apply_test.py b/tests/meta_hooks/check_hooks_apply_test.py index 0ca68802..86bc598d 100644 --- a/tests/meta_hooks/check_hooks_apply_test.py +++ b/tests/meta_hooks/check_hooks_apply_test.py @@ -116,6 +116,12 @@ def test_valid_includes( OrderedDict(( ('id', 'check-useless-excludes'), )), + # Should not be reported as an error due to always_run + OrderedDict(( + ('id', 'check-useless-excludes'), + ('files', '^$'), + ('always_run', True), + )), ), ), ))