The org.codenarc.report.GitlabCodeQualityReportWriter
class (type=”gitlab”)
produces a JSON report of the CodeNarc results, suitable for consumption
by GitLab.
The option element is a child of the report element and defines a report-specific option for a report.
org.codenarc.report.GitlabCodeQualityReportWriter
supports the following options:
Attribute | Description | Default |
---|---|---|
outputFile | The path and filename for the output report file. | Value of defaultOutputFile |
defaultOutputFile | The path and filename for the output report file if outputFile is not specified. | “CodeNarcGitlabCodeQualityReport.json” |
writeAsSingleLine | Set to true to provide output JSON in a single line, for easier parsing |
false |
Here is an extract from a GitLab CI/CD pipeline definition. It uses the generated JAR file to run CodeNarc and exports the result as artifact to GitLab. Notes:
codenarc-linter:
artifacts:
name: $CI_JOB_NAME artifacts from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG
reports:
codequality:
- report.json
when: always
image: openjdk:11-jre-slim
script:
- java -jar CodeNarc-3.5.0-all.jar -report=gitlab:./report.json
[
{
"description": "Class 'SampleFile' is empty (has no methods, fields or properties). Why would you need a class like this?",
"check_name": "EmptyClass",
"fingerprint": "37e50585a6afe0d042752030ed92b20febe9e622",
"severity": "major",
"location": {
"path": "src/test/resources/SampleFile.groovy",
"lines": {
"begin": 1
}
}
},
{
"description": "Class 'SourceFile1' is empty (has no methods, fields or properties). Why would you need a class like this?",
"check_name": "EmptyClass",
"fingerprint": "c3985bbc5fa389cae1cb8a5bdcda4904906e7cc1",
"severity": "major",
"location": {
"path": "src/test/resources/source/SourceFile1.groovy",
"lines": {
"begin": 23
}
}
}
]