diff --git a/tests/test_linter.py b/tests/test_linter.py index 686068b3..a6a21517 100644 --- a/tests/test_linter.py +++ b/tests/test_linter.py @@ -55,6 +55,10 @@ def test_run_on_non_ascii_chars(self): linter.run(s, self.fake_config()) linter.run(s.encode('utf-8'), self.fake_config()) + def test_run_on_ansible_vault(self): + linter.run('$ANSIBLE_VAULT;1.1;AES256\n1643039736532396535663733313\n', + self.fake_config()) + def test_linter_problem_repr_without_rule(self): problem = linter.LintProblem(1, 2, 'problem') diff --git a/yamllint/linter.py b/yamllint/linter.py index 39849707..ae35588c 100644 --- a/yamllint/linter.py +++ b/yamllint/linter.py @@ -188,6 +188,9 @@ def _run(buffer, conf, filepath): first_line = next(parser.line_generator(buffer)).content if re.match(r'^#\s*yamllint disable-file\s*$', first_line): return + elif first_line.startswith('$ANSIBLE_VAULT;'): + # We ignore Ansible vaults. + return # If the document contains a syntax error, save it and yield it at the # right line