class

Krikri::Lint::NoJinjaWhenRule

Inherits Krikri::Lint::Rule < Reference < Object

Upstream parity: ansible-lint's no-jinja-when (severity HIGH, tags deprecations). when/changed_when/failed_when are raw Jinja expressions; {{ }} around them is redundant and deprecated.

Constants

WHEN_KEYS = ["when", "changed_when", "failed_when"] of ::String

Instance methods

applies_to
Source
check(file : PositionedFile, violations : Array(Violation)) : Nil
Source
fix(buffer : FixBuffer, file : PositionedFile, violation : Violation) : Bool

Upstream's transform strips {{ }} from when/changed_when and failed_when values (RE_JINJA = {{ (.*?) }}), preserving the scalar's quoting. List values are left alone (upstream's transform would crash on them and the match stays unfixed).

Source
fixable?

Autofix support, mirroring upstream's TransformMixin: a rule opts in by overriding fixable? (and carrying the "autofix" tag like upstream does) and implementing fix. fix must only make line-local edits through the FixBuffer (replace spans within existing lines, delete whole lines, add the final newline); returning true marks the violation fixed so the CLI drops it from the report.

Source
marks_fixed?(violation : Violation) : Bool

Upstream's transform strips the Jinja template and marks the match fixed. so no "not applied" is logged for it.

Source
severity
Source
tags
Source
task_scoped?

Task-oriented: violations belong to an enclosing task, so a # noqa: anywhere in that task's body suppresses them.

Source
transformable?

Upstream's TransformMixin: the --fix transformer attempts a rule-specific transform for matches of these rules, even when krikri has no line fix of its own (upstream's yaml transform is a documented no-op, yet every yaml[*] match gets a "Rule specific fix not applied for" ERROR from it).

Source