Skip to content

THIS IS A MIRROR - Project development happens on GitLab, where this is intended to be used anyway.

License

Notifications You must be signed in to change notification settings

ahogen/cppcheck-codequality

Repository files navigation

cppcheck-codequality

badge-pypi   badge-pypi-downloads

badge-pipeline   badge-coverage   badge-pylint   badge-formatting   badge-issues-cnt

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:

# Generate CppCheck report as XML
cppcheck --xml --enable=warning,style,performance ./my_src_dir/ 2> cppcheck_out.xml
# Convert to a Code Climate JSON report
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:

# Run as a module instead (note the underscore in the module name here)
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.

About

THIS IS A MIRROR - Project development happens on GitLab, where this is intended to be used anyway.

Resources

License

Stars

Watchers

Forks