From 38a4a0aa3b8769976323162b435bfe8304c225f4 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sun, 31 May 2020 11:30:41 -0700 Subject: [PATCH] allow configuration for pre-commit.ci --- pre_commit/clientlib.py | 4 ++++ tests/clientlib_test.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/pre_commit/clientlib.py b/pre_commit/clientlib.py index 20d44925a..916c5ff23 100644 --- a/pre_commit/clientlib.py +++ b/pre_commit/clientlib.py @@ -297,9 +297,13 @@ def warn_unknown_keys_repo( 'exclude', 'fail_fast', 'minimum_pre_commit_version', + 'ci', ), warn_unknown_keys_root, ), + + # do not warn about configuration for pre-commit.ci + cfgv.OptionalNoDefault('ci', cfgv.check_type(dict)), ) diff --git a/tests/clientlib_test.py b/tests/clientlib_test.py index bfb754b66..ba602362f 100644 --- a/tests/clientlib_test.py +++ b/tests/clientlib_test.py @@ -166,6 +166,20 @@ def test_validate_warn_on_unknown_keys_at_top_level(tmpdir, caplog): ] +def test_ci_map_key_allowed_at_top_level(caplog): + cfg = { + 'ci': {'skip': ['foo']}, + 'repos': [{'repo': 'meta', 'hooks': [{'id': 'identity'}]}], + } + cfgv.validate(cfg, CONFIG_SCHEMA) + assert not caplog.record_tuples + + +def test_ci_key_must_be_map(): + with pytest.raises(cfgv.ValidationError): + cfgv.validate({'ci': 'invalid', 'repos': []}, CONFIG_SCHEMA) + + def test_validate_optional_sensible_regex(caplog): config_obj = { 'id': 'flake8',