diff --git a/bears/general/GixyBear.py b/bears/general/GixyBear.py new file mode 100644 index 0000000000..38b2d14773 --- /dev/null +++ b/bears/general/GixyBear.py @@ -0,0 +1,23 @@ +from coalib.bearlib.abstractions.Linter import linter +from coalib.results.RESULT_SEVERITY import RESULT_SEVERITY +from coalib.results.Result import Result +import json + + +@linter(executable='gixy') +class GixyBear: + severity_map = {"HIGH": RESULT_SEVERITY.MAJOR, + "MEDIUM": RESULT_SEVERITY.NORMAL, + "LOW": RESULT_SEVERITY.INFO} + + @staticmethod + def create_arguments(filename, file, config_file): + return ("--format=json", filename) + def process_output(self, output, filename, file): + output = json.loads(output) if output else [] + for issue in output: + yield Result.from_values(origin=issue["plugin"], + message=issue['description'], + additional_info=issue['reference'], + severity=self.severity_map[issue["severity"]], + file=filename)