🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

cppcheck-codequality

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cppcheck-codequality

Convert a CppCheck XML report to a GitLab-compatible Code Quality JSON report.

1.5.0
PyPI
Maintainers
1

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

  • Format with black
  • Check with pylint
  • Run tests
  • Signoff commits (git commit -s) to indicate you agree to Developer Certificate of Origin (DCO) Version 1.1 https://developercertificate.org/
  • Create a GitLab merge request and I'll take a look!

Details

Setup development environment.

sudo apt install pipx
pipx install poetry
poetry install
source ./venv/bin/activate

Format

black ./

Use Tox to run tests in all python environments available on your system.

poetry run tox -e clean
poetry run tox

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.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts