ansible-later/ansiblelater/rules/CheckMetaChangeFromDefault.py

31 lines
1.1 KiB
Python

# Copyright (c) 2018, Ansible Project
from nested_lookup import nested_lookup
from ansiblelater.rule import RuleBase
class CheckMetaChangeFromDefault(RuleBase):
sid = "ANSIBLE0021"
description = "Roles meta/main.yml default values should be changed"
helptext = "meta/main.yml default values should be changed for: `{field}`"
types = ["meta"]
def check(self, candidate, settings):
content, errors = self.get_raw_yaml(candidate, settings)
field_defaults = [
("author", "your name"),
("description", "your description"),
("company", "your company (optional)"),
("license", "license (GPLv2, CC-BY, etc)"),
("license", "license (GPL-2.0-or-later, MIT, etc)"),
]
if not errors:
for field, default in field_defaults:
pair = f"{field}: {default}"
lookup = nested_lookup(field, content)
if lookup and default in nested_lookup(field, content):
errors.append(self.Error(None, self.helptext.format(field=pair)))
return self.Result(candidate.path, errors)