andreoliwa / nitpick

Enforce the same settings on multiple projects
https://nitpick.readthedocs.io/
MIT License
389 stars 23 forks source link

Provide SARIF output #474

Open mjpieters opened 2 years ago

mjpieters commented 2 years ago

Please add support for outputting SARIF (Static Analysis Results Interchange Format) information.

This would help integrate nitpick into other tools, as SARIF is a widely supported standard format for code analysers including linters like nitpick. E.g.:

andreoliwa commented 2 years ago

Thanks for yet this suggestion. I haven't heard of this SARIF format before, but it looks interesting for nitpick check, I assume.


(food for thought, maybe for a separate issue)

For all this integration to look great, the current output should be better formatted (AKA revamped). E.g. standardise error messages, remove duplicates, renumber (there is a draft card on the Roadmap, but I've yet to think and write a decent issue with details).

Also, line references are not returned by Nitpick. It might be tricky to do that, I haven't thought much about it.

Right now, each Nitpick plugin (TOML/YAML/JSON/INI) has its own way of comparing dicts and applying a diff on the original file.

To work as a proper linter (like flake8 or pylint), I would have to find and return the line number of each line-to-be-modified. I don't think the packages I use provide such thing, e.g.: tomlkit and ruamel.yaml.