Make hooks specify files. Optionally allow config to override manifest.

This commit is contained in:
Anthony Sottile
2014-06-05 18:37:33 -07:00
parent 0ec9020346
commit 96174deac6
25 changed files with 81 additions and 50 deletions

View File

@@ -32,7 +32,7 @@ CONFIG_JSON_SCHEMA = {
'items': {'type': 'string'},
},
},
'required': ['id', 'files'],
'required': ['id'],
}
}
},
@@ -55,7 +55,7 @@ def try_regex(repo, hook, value, field_name):
def validate_config_extra(config):
for repo in config:
for hook in repo['hooks']:
try_regex(repo, hook['id'], hook['files'], 'files')
try_regex(repo, hook['id'], hook.get('files', ''), 'files')
try_regex(repo, hook['id'], hook['exclude'], 'exclude')

View File

@@ -21,9 +21,10 @@ MANIFEST_JSON_SCHEMA = {
'entry': {'type': 'string'},
'language': {'type': 'string'},
'language_version': {'type': 'string', 'default': 'default'},
'files': {'type': 'string'},
'expected_return_value': {'type': 'number', 'default': 0},
},
'required': ['id', 'name', 'entry', 'language'],
'required': ['id', 'name', 'entry', 'language', 'files'],
},
}

View File

@@ -38,7 +38,7 @@ class Repository(object):
def hooks(self):
# TODO: merging in manifest dicts is a smell imo
return OrderedDict(
(hook['id'], dict(hook, **self.manifest.hooks[hook['id']]))
(hook['id'], dict(self.manifest.hooks[hook['id']], **hook))
for hook in self.repo_config['hooks']
)