eagerly catch invalid yaml in migrate-config

This commit is contained in:
Anthony Sottile 2023-01-09 12:31:05 -05:00
parent dc667ab9fb
commit 619f2bf5a9
2 changed files with 22 additions and 0 deletions

View file

@ -3,8 +3,10 @@ from __future__ import annotations
import re
import textwrap
import cfgv
import yaml
from pre_commit.clientlib import InvalidConfigError
from pre_commit.yaml import yaml_load
@ -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)