Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b66c292

Browse files
authored
Merge pull request #494 from pre-commit/validate_minimum_version
Validate minimum version for local hooks as well
2 parents 5cca326 + 5bfe4e5 commit b66c292

1 file changed

Lines changed: 25 additions & 13 deletions

File tree

pre_commit/repository.py

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,22 @@ def _install_all(venvs, repo_url):
9191
_write_installed_state(cmd_runner, venv, state)
9292

9393

94+
def _validate_minimum_version(hook):
95+
hook_version = pkg_resources.parse_version(
96+
hook['minimum_pre_commit_version'],
97+
)
98+
if hook_version > C.VERSION_PARSED:
99+
logger.error(
100+
'The hook `{}` requires pre-commit version {} but '
101+
'version {} is installed. '
102+
'Perhaps run `pip install --upgrade pre-commit`.'.format(
103+
hook['id'], hook_version, C.VERSION_PARSED,
104+
)
105+
)
106+
exit(1)
107+
return hook
108+
109+
94110
class Repository(object):
95111
def __init__(self, repo_config, store):
96112
self.repo_config = repo_config
@@ -133,18 +149,9 @@ def hooks(self):
133149
)
134150
)
135151
exit(1)
136-
hook_version = pkg_resources.parse_version(
137-
self.manifest.hooks[hook['id']]['minimum_pre_commit_version'],
138-
)
139-
if hook_version > C.VERSION_PARSED:
140-
logger.error(
141-
'The hook `{}` requires pre-commit version {} but '
142-
'version {} is installed. '
143-
'Perhaps run `pip install --upgrade pre-commit`.'.format(
144-
hook['id'], hook_version, C.VERSION_PARSED,
145-
)
146-
)
147-
exit(1)
152+
153+
_validate_minimum_version(self.manifest.hooks[hook['id']])
154+
148155
return tuple(
149156
(hook['id'], dict(self.manifest.hooks[hook['id']], **hook))
150157
for hook in self.repo_config['hooks']
@@ -198,7 +205,12 @@ def manifest(self):
198205
@cached_property
199206
def hooks(self):
200207
return tuple(
201-
(hook['id'], apply_defaults(hook, MANIFEST_JSON_SCHEMA['items']))
208+
(
209+
hook['id'],
210+
_validate_minimum_version(apply_defaults(
211+
hook, MANIFEST_JSON_SCHEMA['items'],
212+
)),
213+
)
202214
for hook in self.repo_config['hooks']
203215
)
204216

0 commit comments

Comments
 (0)