cppcheck-codequality
About
I wanted reports from CppCheck to appear in GitLab Merge Requests as Code
Quality reports,
which is a JSON file defined by the Code Climate team/service.
That's all this does: convert CppCheck XML to Code Climate JSON.
Usage
It is primarily used as a console script. As such, ensure you have Python 3's "scripts" directory in your PATH
variable.
For example, on Linux, that might be $HOME/.local/bin
.
To test, try the --help
or --version
flags:
cppcheck-codequality --help
CppCheck already has a script to convert its XML report to HTML for easy
human reading. See "Chapter 11 HTML Report" in the CppCheck Manual
This script follows that example and provides similar command-line options.
A typical workflow might look like this:
cppcheck --xml --enable=warning,style,performance ./my_src_dir/ 2> cppcheck_out.xml
cppcheck-codequality --input-file cppcheck_out.xml --output-file cppcheck.json
If you wanted, you could invoke the script directly as a module, like this:
python -m cppcheck_codequality --input-file=cppcheck_out.xml --output-file=cppcheck.json
Now, in your GitLab CI script, upload this file
as a Code Quality report.
my-code-quality:
script:
- [...]
artifacts:
reports:
codequality: cppcheck.json
Contributing
- Sign the contributor agreement (coming soon)
- Format with black
- Check with pylint
Credits & Trademarks
CppCheck is an open-source project with a GPL v3.0 license.
"Code Climate" may be a registered trademark of Code Climate, Inc. which provides
super-cool free and paid services to the developer community.
"GitLab" is a trademark of GitLab B.V.
All other trademarks belong to their respective owners.