Beispiel #1
0
        'repo',
        META,
    ),
    MigrateShaToRev(),
    cfgv.WarnAdditionalKeys(('repo', 'rev', 'hooks'), warn_unknown_keys_repo),
)
DEFAULT_LANGUAGE_VERSION = cfgv.Map(
    'DefaultLanguageVersion', None, cfgv.NoAdditionalKeys(all_languages),
    *[cfgv.Optional(x, cfgv.check_string, C.DEFAULT) for x in all_languages])
CONFIG_SCHEMA = cfgv.Map(
    'Config',
    None,
    cfgv.RequiredRecurse('repos', cfgv.Array(CONFIG_REPO_DICT)),
    cfgv.OptionalRecurse(
        'default_language_version',
        DEFAULT_LANGUAGE_VERSION,
        {},
    ),
    cfgv.Optional(
        'default_stages',
        cfgv.check_array(cfgv.check_one_of(C.STAGES)),
        C.STAGES,
    ),
    cfgv.Optional('exclude', cfgv.check_regex, '^$'),
    cfgv.Optional('fail_fast', cfgv.check_bool, False),
    cfgv.Optional(
        'minimum_pre_commit_version',
        cfgv.check_and(cfgv.check_string, check_min_version),
        '0',
    ),
    cfgv.WarnAdditionalKeys(
Beispiel #2
0
        cfgv.check_one_of(('weekly', 'monthly', 'quarterly')),
        'weekly',
    ),
    cfgv.Optional('skip', cfgv.check_array(cfgv.check_string), []),
    cfgv.Optional('submodules', cfgv.check_bool, False),
)

SCHEMA = cfgv.Map(
    'Config',
    None,

    # to cross-validate hook values
    cfgv.RequiredRecurse('repos', cfgv.Array(CONFIG_REPO_DICT)),

    # our configuration
    cfgv.OptionalRecurse('ci', CI_DICT, {}),
    ValidateSkip(),
)


def main(argv: Sequence[str] | None = None) -> int:
    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*')
    args = parser.parse_args(argv)

    retv = 0
    for filename in args.filenames:
        try:
            cfgv.load_from_filename(
                filename,
                schema=SCHEMA,