diff --git a/ansiblelater/rules/CheckNamedTask.py b/ansiblelater/rules/CheckNamedTask.py index 2b2b9d9..5b2f2ee 100644 --- a/ansiblelater/rules/CheckNamedTask.py +++ b/ansiblelater/rules/CheckNamedTask.py @@ -11,10 +11,7 @@ class CheckNamedTask(StandardBase): def check(self, candidate, settings): tasks, errors = self.get_normalized_tasks(candidate, settings) - nameless_tasks = [ - "meta", "debug", "include_role", "import_role", "include_tasks", "import_tasks", - "include_vars", "block" - ] + nameless_tasks = settings["ansible"]["named-task"]["exclude"] if not errors: for task in tasks: diff --git a/ansiblelater/settings.py b/ansiblelater/settings.py index 2575c7a..d60309b 100644 --- a/ansiblelater/settings.py +++ b/ansiblelater/settings.py @@ -136,6 +136,18 @@ class Settings(object): "max-spaces-inside": 1, }, "literal-bools": ["True", "False", "yes", "no"], + "named-task": { + "exclude": [ + "meta", + "debug", + "block", + "include_role", + "import_role", + "include_tasks", + "import_tasks", + "include_vars", + ], + }, }, "yamllint": { "empty-lines": { diff --git a/docs/content/configuration/defaults.md b/docs/content/configuration/defaults.md index dda3d97..567cd59 100644 --- a/docs/content/configuration/defaults.md +++ b/docs/content/configuration/defaults.md @@ -28,6 +28,19 @@ ansible: - "yes" - "no" + # List of tasks that don't need to be named (ANSIBLE0006). + # You have to specify every single task type, globs or wildcard will not work! + named-task + exclude: + - "meta" + - "debug" + - "block" + - "include_role" + - "include_tasks" + - "include_vars" + - "import_role" + - "import_tasks" + # Global logging configuration # If you would like to force colored output (e.g. non-tty) # set environment variable `PY_COLORS=1` diff --git a/docs/content/included_rules/_index.md b/docs/content/included_rules/_index.md index 16f7aa3..984eedb 100644 --- a/docs/content/included_rules/_index.md +++ b/docs/content/included_rules/_index.md @@ -2,43 +2,43 @@ title: Included rules --- -Reviews are nothing without some rules or standards against which to review. ansible-later comes with a couple of built-in checks explained in the following table. +Reviews are useless without some rules or standards to check against. ansible-later comes with a set of built-in checks, which are explained in the following table. -| Rule | ID | Description | Parameter | -| ----------------------------- | ----------- | ----------------------------------------------------------------- | -------------------------------------------------------------------- | -| CheckYamlEmptyLines | LINT0001 | YAML should not contain unnecessarily empty lines. | {max: 1, max-start: 0, max-end: 1} | -| CheckYamlIndent | LINT0002 | YAML should be correctly indented. | {spaces: 2, check-multi-line-strings: false, indent-sequences: true} | -| CheckYamlHyphens | LINT0003 | YAML should use consistent number of spaces after hyphens (-). | {max-spaces-after: 1} | -| CheckYamlDocumentStart | LINT0004 | YAML should contain document start marker. | {document-start: {present: true}} | -| CheckYamlColons | LINT0005 | YAML should use consistent number of spaces around colons. | {colons: {max-spaces-before: 0, max-spaces-after: 1}} | -| CheckYamlFile | LINT0006 | Roles file should be in YAML format. | | -| CheckYamlHasContent | LINT0007 | Files should contain useful content. | | -| CheckNativeYaml | LINT0008 | Use YAML format for tasks and handlers rather than key=value. | | -| CheckYamlDocumentEnd | LINT0009 | YAML should contain document end marker. | {document-end: {present: true}} | -| CheckLineBetweenTasks | ANSIBLE0001 | Single tasks should be separated by an empty line. | | -| CheckMetaMain | ANSIBLE0002 | Meta file should contain a basic subset of parameters. | author, description, min_ansible_version, platforms, dependencies | -| CheckUniqueNamedTask | ANSIBLE0003 | Tasks and handlers must be uniquely named within a file. | | -| CheckBraces | ANSIBLE0004 | YAML should use consistent number of spaces around variables. | {double-braces: max-spaces-inside: 1, min-spaces-inside: 1} | -| CheckScmInSrc | ANSIBLE0005 | Use SCM key rather than `src: scm+url` in requirements file. | | -| CheckNamedTask | ANSIBLE0006 | Tasks and handlers must be named. | excludes: meta, debug, include\_\*, import\_\*, block | -| CheckNameFormat | ANSIBLE0007 | Name of tasks and handlers must be formatted. | formats: first letter capital | -| CheckCommandInsteadofModule | ANSIBLE0008 | Commands should not be used in place of modules. | | -| CheckInstallUseLatest | ANSIBLE0009 | Package managers should not install with state=latest. | | -| CheckShellInsteadCommand | ANSIBLE0010 | Use Shell only when piping, redirecting or chaining commands. | | -| CheckCommandHasChanges | ANSIBLE0011 | Commands should be idempotent and only used with some checks. | | -| CheckCompareToEmptyString | ANSIBLE0012 | Don't compare to "" - use `when: var` or `when: not var`. | | -| CheckCompareToLiteralBool | ANSIBLE0013 | Don't compare to True/False - use `when: var` or `when: not var`. | | -| CheckLiteralBoolFormat | ANSIBLE0014 | Literal bools should be consistent. | {literal-bools: [True, False, yes, no]} | -| CheckBecomeUser | ANSIBLE0015 | Become should be combined with become_user. | | -| CheckFilterSeparation | ANSIBLE0016 | Jinja2 filters should be separated with spaces. | | -| CheckCommandInsteadOfArgument | ANSIBLE0017 | Commands should not be used in place of module arguments. | | -| CheckFilePermissionMissing | ANSIBLE0018 | File permissions unset or incorrect. | | -| CheckFilePermissionOctal | ANSIBLE0019 | Octal file permissions must contain leading zero or be a string. | | -| CheckGitHasVersion | ANSIBLE0020 | Git checkouts should use explicit version. | | -| CheckMetaChangeFromDefault | ANSIBLE0021 | Roles meta/main.yml default values should be changed. | | -| CheckWhenFormat | ANSIBLE0022 | Don't use Jinja2 in `when`. | | -| CheckNestedJinja | ANSIBLE0023 | Don't use nested Jinja2 pattern. | | -| CheckLocalAction | ANSIBLE0024 | Don't use local_action. | | -| CheckRelativeRolePaths | ANSIBLE0025 | Don't use a relative path in a role. | | -| CheckChangedInWhen | ANSIBLE0026 | Use handlers instead of `when: changed`. | | -| CheckDeprecated | ANSIBLE9999 | Deprecated features of `ansible-later` should not be used. | | +| Rule | ID | Description | Parameter | +| ----------------------------- | ----------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------- | +| CheckYamlEmptyLines | LINT0001 | YAML should not contain unnecessarily empty lines. | {max: 1, max-start: 0, max-end: 1} | +| CheckYamlIndent | LINT0002 | YAML should be correctly indented. | {spaces: 2, check-multi-line-strings: false, indent-sequences: true} | +| CheckYamlHyphens | LINT0003 | YAML should use consistent number of spaces after hyphens (-). | {max-spaces-after: 1} | +| CheckYamlDocumentStart | LINT0004 | YAML should contain document start marker. | {document-start: {present: true}} | +| CheckYamlColons | LINT0005 | YAML should use consistent number of spaces around colons. | {colons: {max-spaces-before: 0, max-spaces-after: 1}} | +| CheckYamlFile | LINT0006 | Roles file should be in YAML format. | | +| CheckYamlHasContent | LINT0007 | Files should contain useful content. | | +| CheckNativeYaml | LINT0008 | Use YAML format for tasks and handlers rather than key=value. | | +| CheckYamlDocumentEnd | LINT0009 | YAML should contain document end marker. | {document-end: {present: true}} | +| CheckLineBetweenTasks | ANSIBLE0001 | Single tasks should be separated by an empty line. | | +| CheckMetaMain | ANSIBLE0002 | Meta file should contain a basic subset of parameters. | author, description, min_ansible_version, platforms, dependencies | +| CheckUniqueNamedTask | ANSIBLE0003 | Tasks and handlers must be uniquely named within a file. | | +| CheckBraces | ANSIBLE0004 | YAML should use consistent number of spaces around variables. | {double-braces: max-spaces-inside: 1, min-spaces-inside: 1} | +| CheckScmInSrc | ANSIBLE0005 | Use SCM key rather than `src: scm+url` in requirements file. | | +| CheckNamedTask | ANSIBLE0006 | Tasks and handlers must be named. | {named-task: {exclude: [meta, debug, block, include\_\*, import\_\*]}} | +| CheckNameFormat | ANSIBLE0007 | Name of tasks and handlers must be formatted. | formats: first letter capital | +| CheckCommandInsteadofModule | ANSIBLE0008 | Commands should not be used in place of modules. | | +| CheckInstallUseLatest | ANSIBLE0009 | Package managers should not install with state=latest. | | +| CheckShellInsteadCommand | ANSIBLE0010 | Use Shell only when piping, redirecting or chaining commands. | | +| CheckCommandHasChanges | ANSIBLE0011 | Commands should be idempotent and only used with some checks. | | +| CheckCompareToEmptyString | ANSIBLE0012 | Don't compare to "" - use `when: var` or `when: not var`. | | +| CheckCompareToLiteralBool | ANSIBLE0013 | Don't compare to True/False - use `when: var` or `when: not var`. | | +| CheckLiteralBoolFormat | ANSIBLE0014 | Literal bools should be consistent. | {literal-bools: [True, False, yes, no]} | +| CheckBecomeUser | ANSIBLE0015 | Become should be combined with become_user. | | +| CheckFilterSeparation | ANSIBLE0016 | Jinja2 filters should be separated with spaces. | | +| CheckCommandInsteadOfArgument | ANSIBLE0017 | Commands should not be used in place of module arguments. | | +| CheckFilePermissionMissing | ANSIBLE0018 | File permissions unset or incorrect. | | +| CheckFilePermissionOctal | ANSIBLE0019 | Octal file permissions must contain leading zero or be a string. | | +| CheckGitHasVersion | ANSIBLE0020 | Git checkouts should use explicit version. | | +| CheckMetaChangeFromDefault | ANSIBLE0021 | Roles meta/main.yml default values should be changed. | | +| CheckWhenFormat | ANSIBLE0022 | Don't use Jinja2 in `when`. | | +| CheckNestedJinja | ANSIBLE0023 | Don't use nested Jinja2 pattern. | | +| CheckLocalAction | ANSIBLE0024 | Don't use local_action. | | +| CheckRelativeRolePaths | ANSIBLE0025 | Don't use a relative path in a role. | | +| CheckChangedInWhen | ANSIBLE0026 | Use handlers instead of `when: changed`. | | +| CheckDeprecated | ANSIBLE9999 | Deprecated features of `ansible-later` should not be used. | |