remove support for top-level list format

This commit is contained in:
Anthony Sottile 2022-12-27 11:15:45 -05:00
parent 40c5bdad65
commit 0024484f5b
3 changed files with 66 additions and 79 deletions

View file

@ -391,23 +391,10 @@ class InvalidConfigError(FatalError):
pass
def ordered_load_normalize_legacy_config(contents: str) -> dict[str, Any]:
data = yaml_load(contents)
if isinstance(data, list):
logger.warning(
'normalizing pre-commit configuration to a top-level map. '
'support for top level list will be removed in a future version. '
'run: `pre-commit migrate-config` to automatically fix this.',
)
return {'repos': data}
else:
return data
load_config = functools.partial(
cfgv.load_from_filename,
schema=CONFIG_SCHEMA,
load_strategy=ordered_load_normalize_legacy_config,
load_strategy=yaml_load,
exc_tp=InvalidConfigError,
)

View file

@ -120,14 +120,6 @@ def test_validate_config_main_ok():
assert not validate_config_main(('.pre-commit-config.yaml',))
def test_validate_config_old_list_format_ok(tmpdir, cap_out):
f = tmpdir.join('cfg.yaml')
f.write('- {repo: meta, hooks: [{id: identity}]}')
assert not validate_config_main((f.strpath,))
msg = '[WARNING] normalizing pre-commit configuration to a top-level map'
assert msg in cap_out.get()
def test_validate_warn_on_unknown_keys_at_repo_level(tmpdir, caplog):
f = tmpdir.join('cfg.yaml')
f.write(

View file

@ -739,7 +739,8 @@ def test_commit_msg_legacy(commit_msg_repo, tempdir_factory, store):
def test_post_commit_integration(tempdir_factory, store):
path = git_dir(tempdir_factory)
config = [
config = {
'repos': [
{
'repo': 'local',
'hooks': [{
@ -752,7 +753,8 @@ def test_post_commit_integration(tempdir_factory, store):
'stages': ['post-commit'],
}],
},
]
],
}
write_config(path, config)
with cwd(path):
_get_commit_output(tempdir_factory)
@ -765,7 +767,8 @@ def test_post_commit_integration(tempdir_factory, store):
def test_post_merge_integration(tempdir_factory, store):
path = git_dir(tempdir_factory)
config = [
config = {
'repos': [
{
'repo': 'local',
'hooks': [{
@ -778,7 +781,8 @@ def test_post_merge_integration(tempdir_factory, store):
'stages': ['post-merge'],
}],
},
]
],
}
write_config(path, config)
with cwd(path):
# create a simple diamond of commits for a non-trivial merge
@ -807,7 +811,8 @@ def test_post_merge_integration(tempdir_factory, store):
def test_post_rewrite_integration(tempdir_factory, store):
path = git_dir(tempdir_factory)
config = [
config = {
'repos': [
{
'repo': 'local',
'hooks': [{
@ -820,7 +825,8 @@ def test_post_rewrite_integration(tempdir_factory, store):
'stages': ['post-rewrite'],
}],
},
]
],
}
write_config(path, config)
with cwd(path):
open('init', 'a').close()
@ -836,7 +842,8 @@ def test_post_rewrite_integration(tempdir_factory, store):
def test_post_checkout_integration(tempdir_factory, store):
path = git_dir(tempdir_factory)
config = [
config = {
'repos': [
{
'repo': 'local',
'hooks': [{
@ -850,7 +857,8 @@ def test_post_checkout_integration(tempdir_factory, store):
}],
},
{'repo': 'meta', 'hooks': [{'id': 'identity'}]},
]
],
}
write_config(path, config)
with cwd(path):
cmd_output('git', 'add', '.')