diff options
Diffstat (limited to 'pre_commit/commands/migrate_config.py')
-rw-r--r-- | pre_commit/commands/migrate_config.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/pre_commit/commands/migrate_config.py b/pre_commit/commands/migrate_config.py index c3d0a50..6f7af4e 100644 --- a/pre_commit/commands/migrate_config.py +++ b/pre_commit/commands/migrate_config.py @@ -3,9 +3,11 @@ from __future__ import annotations import re import textwrap +import cfgv import yaml -from pre_commit.util import yaml_load +from pre_commit.clientlib import InvalidConfigError +from pre_commit.yaml import yaml_load def _is_header_line(line: str) -> bool: @@ -44,6 +46,13 @@ def migrate_config(config_file: str, quiet: bool = False) -> int: with open(config_file) as f: orig_contents = contents = f.read() + with cfgv.reraise_as(InvalidConfigError): + with cfgv.validate_context(f'File {config_file}'): + try: + yaml_load(orig_contents) + except Exception as e: + raise cfgv.ValidationError(str(e)) + contents = _migrate_map(contents) contents = _migrate_sha_to_rev(contents) |