From 04c581dedcb36dcf1f669a3722aeb609be6f9922 Mon Sep 17 00:00:00 2001 From: Andras Mitzki Date: Mon, 25 Mar 2019 15:52:10 +0100 Subject: [PATCH] Check unsupported TOP_LEVEL_KEYS Signed-off-by: Andras Mitzki --- pre_commit/repository.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pre_commit/repository.py b/pre_commit/repository.py index 1d92d753..abb55485 100644 --- a/pre_commit/repository.py +++ b/pre_commit/repository.py @@ -162,6 +162,7 @@ def _non_cloned_repository_hooks(repo_config, store, root_config): def _cloned_repository_hooks(repo_config, store, root_config): + _check_extra_top_level_keys(repo_config) repo, rev = repo_config['repo'], repo_config['rev'] manifest_path = os.path.join(store.clone(repo, rev), C.MANIFEST_FILE) by_id = {hook['id']: hook for hook in load_manifest(manifest_path)} @@ -190,6 +191,21 @@ def _cloned_repository_hooks(repo_config, store, root_config): ) +_TOP_LEVEL_KEYS = ('repo', 'rev', 'hooks') + + +def _check_extra_top_level_keys(repo_config): + extra_top_level_keys = set(dict(repo_config).keys()) - set(_TOP_LEVEL_KEYS) + if extra_top_level_keys: + logger.warning( + 'Unexpected top level keys present: {}, only supported' + 'top level keys: {}'.format( + extra_top_level_keys, + _TOP_LEVEL_KEYS, + ), + ) + + def _repository_hooks(repo_config, store, root_config): if repo_config['repo'] in {LOCAL, META}: return _non_cloned_repository_hooks(repo_config, store, root_config)