diff --git a/bandit/formatters/yaml.py b/bandit/formatters/yaml.py index 2f26b206..3217b7c8 100644 --- a/bandit/formatters/yaml.py +++ b/bandit/formatters/yaml.py @@ -60,6 +60,7 @@ This formatter outputs the issues in a yaml format. line_number: 6 line_range: - 6 + more_info: https://docs.openstack.org/bandit/latest/ test_id: B506 test_name: yaml_load @@ -77,6 +78,8 @@ import sys import yaml +from bandit.core import docs_utils + LOG = logging.getLogger(__name__) @@ -98,6 +101,8 @@ def report(manager, fileobj, sev_level, conf_level, lines=-1): conf_level=conf_level) collector = [r.as_dict() for r in results] + for elem in collector: + elem['more_info'] = docs_utils.get_url(elem['test_id']) itemgetter = operator.itemgetter if manager.agg_type == 'vuln': diff --git a/releasenotes/notes/add-url-in-yaml-0bfdcc93f5b6d118.yaml b/releasenotes/notes/add-url-in-yaml-0bfdcc93f5b6d118.yaml new file mode 100644 index 00000000..e402b972 --- /dev/null +++ b/releasenotes/notes/add-url-in-yaml-0bfdcc93f5b6d118.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + [bug/1746827] The ``more_info`` URL link displayed in the HTML and JSON + outputs is now also available in the YAML output. diff --git a/tests/unit/formatters/test_yaml.py b/tests/unit/formatters/test_yaml.py index 348066d9..c6cc7098 100644 --- a/tests/unit/formatters/test_yaml.py +++ b/tests/unit/formatters/test_yaml.py @@ -94,3 +94,5 @@ class JsonFormatterTests(testtools.TestCase): data['results'][0]['line_range']) self.assertEqual(self.check_name, data['results'][0]['test_name']) self.assertIn('candidates', data['results'][0]) + self.assertIn('more_info', data['results'][0]) + self.assertIsNotNone(data['results'][0]['more_info'])