Attention: The direct execution of metric-gardener has been temporarily disabled.

Category: Importer (takes in source code or JSON generated by MetricGardener and outputs cc.json)

This importer allows to use metrics calculated by MetricGardener, a multi-language code parser based on tree-sitter. The importer can be used to parse files locally or to just import a MetricGardener.json file and convert it into a regular CodeCharta.cc.json file.

For more information on MetricGardener, like the supported languages, and command line options, refer to its README.

MetricGardener is in active development. More languages, metrics or command line options might be added. For more information, refer to its README.

Supported Languages

  • Go
  • PHP
  • TypeScript and TSX
  • Java
  • C#
  • C++
  • Python
  • JavaScript
  • Kotlin
  • JSON
  • YAML

Supported Metrics

Metric Description
mcc Maximum cyclic complexity based on paths through the code by McCabe
functions Number of functions
classes Number of classes
lines_of_code Lines of code including empty lines and comments
comment_lines Number of lines containing either a comment or commented-out code
real_lines_of_code Number of physical lines that contain at least one character which is neither a whitespace nor a tabulation nor part of a comment

Usage and Parameters

Parameter Description
FOLDER or FILE path for project folder or code file
-j, --is-json-file Input file is already a MetricGardener JSON file
-h, --help displays help
-o, --outputFile=<outputFile> output File (or empty for stdout)
-nc, --not-compressed save uncompressed output File
Usage: ccsh metricgardenerimport [-hj] [-nc] [-o=<outputFile>] FOLDER or FILE

Examples

Create a CodeCharta json file from local source code (metric-gardener is executed internally on the fly):

ccsh metricgardenerimport /path/to/source/code -o outfile.cc.json

Create a CodeCharta json file by importing a given metric-gardener json file (run MetricGardener yourself):

For this MetricGardener needs to be installed on your system. Install it with npm i -g metric-gardener

npx metric-gardener parse /path/to/source/code -o mg_results.json
ccsh metricgardenerimport mg_results.json --is-json-file -o outfile.cc.json

Additional Requirements

Also refer to the Metric-Gardener GitHub page, as the requirements can change

If you want to execute the metric-gardener, either with your own installation or indirectly through the ccsh, you need to install the additional requirements listed below:

Windows

  • Python
  • C/C++ compiler toolchain (e.g. Visual Studio Build Tools 2022 with “Desktop development with C++”)

You might need to install additional packages to python depending on its version. Please refer to the node-gyp GitHub page for help.

Unix

  • Python
  • C/C++ compiler toolchain

Those tools could be an included in your distribution of linux (or your version of MacOS).

Updated: