@@ -132,7 +132,7 @@ def check(self, dct: Dict[str, Any]) -> None:
132132 )
133133
134134
135- class OptionalSensibleRegex (cfgv .OptionalNoDefault ):
135+ class OptionalSensibleRegexAtHook (cfgv .OptionalNoDefault ):
136136 def check (self , dct : Dict [str , Any ]) -> None :
137137 super ().check (dct )
138138
@@ -144,6 +144,17 @@ def check(self, dct: Dict[str, Any]) -> None:
144144 )
145145
146146
147+ class OptionalSensibleRegexAtTop (cfgv .OptionalNoDefault ):
148+ def check (self , dct : Dict [str , Any ]) -> None :
149+ super ().check (dct )
150+
151+ if '/*' in dct .get (self .key , '' ):
152+ logger .warning (
153+ f'The top-level { self .key !r} field is a regex, not a glob -- '
154+ f"matching '/*' probably isn't what you want here" ,
155+ )
156+
157+
147158class MigrateShaToRev :
148159 key = 'rev'
149160
@@ -259,8 +270,8 @@ def warn_unknown_keys_repo(
259270 for item in MANIFEST_HOOK_DICT .items
260271 if item .key != 'id'
261272 ),
262- OptionalSensibleRegex ('files' , cfgv .check_string ),
263- OptionalSensibleRegex ('exclude' , cfgv .check_string ),
273+ OptionalSensibleRegexAtHook ('files' , cfgv .check_string ),
274+ OptionalSensibleRegexAtHook ('exclude' , cfgv .check_string ),
264275)
265276CONFIG_REPO_DICT = cfgv .Map (
266277 'Repository' , 'repo' ,
@@ -329,6 +340,8 @@ def warn_unknown_keys_repo(
329340 ),
330341 warn_unknown_keys_root ,
331342 ),
343+ OptionalSensibleRegexAtTop ('files' , cfgv .check_string ),
344+ OptionalSensibleRegexAtTop ('exclude' , cfgv .check_string ),
332345
333346 # do not warn about configuration for pre-commit.ci
334347 cfgv .OptionalNoDefault ('ci' , cfgv .check_type (dict )),
0 commit comments