From a4e9394cc731de7065f3ff9a54ec323f254dd397 Mon Sep 17 00:00:00 2001 From: Chris Kuehl Date: Wed, 6 Jan 2016 16:49:42 -0800 Subject: [PATCH] Add types to manifests, make it and files optional --- pre_commit/clientlib/validate_config.py | 4 ++++ pre_commit/clientlib/validate_manifest.py | 17 ++++++++++++----- tests/manifest_test.py | 2 ++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/pre_commit/clientlib/validate_config.py b/pre_commit/clientlib/validate_config.py index 8991850e..dcc4ebd7 100644 --- a/pre_commit/clientlib/validate_config.py +++ b/pre_commit/clientlib/validate_config.py @@ -44,6 +44,10 @@ CONFIG_JSON_SCHEMA = { 'type': 'array', 'items': {'type': 'string'}, }, + 'types': { + 'type': 'array', + 'items': {'type': 'string'} + }, }, 'required': ['id'], } diff --git a/pre_commit/clientlib/validate_manifest.py b/pre_commit/clientlib/validate_manifest.py index d11ce2b8..182a5e1c 100644 --- a/pre_commit/clientlib/validate_manifest.py +++ b/pre_commit/clientlib/validate_manifest.py @@ -27,7 +27,11 @@ MANIFEST_JSON_SCHEMA = { 'minimum_pre_commit_version': { 'type': 'string', 'default': '0.0.0', }, - 'files': {'type': 'string'}, + 'files': { + 'type': 'string', + # empty regex to match all files + 'default': '', + }, 'stages': { 'type': 'array', 'default': [], @@ -35,19 +39,22 @@ MANIFEST_JSON_SCHEMA = { 'type': 'string', }, }, + 'types': { + 'type': 'array', + 'items': {'type': 'string'}, + 'default': ['file'], + }, 'args': { 'type': 'array', 'default': [], - 'items': { - 'type': 'string', - }, + 'items': {'type': 'string'}, }, 'additional_dependencies': { 'type': 'array', 'items': {'type': 'string'}, }, }, - 'required': ['id', 'name', 'entry', 'language', 'files'], + 'required': ['id', 'name', 'entry', 'language'], }, } diff --git a/tests/manifest_test.py b/tests/manifest_test.py index 174f201f..eb3b65da 100644 --- a/tests/manifest_test.py +++ b/tests/manifest_test.py @@ -25,6 +25,7 @@ def test_manifest_contents(manifest): 'entry': 'bin/hook.sh', 'exclude': '^$', 'files': '', + 'types': ['file'], 'id': 'bash_hook', 'language': 'script', 'language_version': 'default', @@ -42,6 +43,7 @@ def test_hooks(manifest): 'entry': 'bin/hook.sh', 'exclude': '^$', 'files': '', + 'types': ['file'], 'id': 'bash_hook', 'language': 'script', 'language_version': 'default',