Add support for maximum or average values in metrics #669
Quality Monitor
Unit Tests (Whole Project): 100.00% successful (196 passed)
🚀 Integration Tests (Whole Project): 100.00% successful (149 passed, 7 skipped)
⛔ Architecture Tests (Whole Project): 100.00% successful (15 passed)
〰️ Line Coverage (Changed Code): n/a (0 missed lines)
➰ Branch Coverage (Changed Code): n/a (0 missed branches)
〰️ Line Coverage (Whole Project): 76.20% (743 missed lines)
➰ Branch Coverage (Whole Project): 67.14% (300 missed branches)
CheckStyle (Whole Project): 3 warnings (normal: 3)
PMD (Whole Project): 2 warnings (normal: 2)
☕ Java Compiler (Whole Project): 3 warnings (normal: 3)
SpotBugs (Whole Project): 1 bug (normal: 1)
🐛 Error Prone (Whole Project): No bugs
🛡️ OWASP Dependency Check (Whole Project): 200 vulnerabilities (error: 16, high: 50, normal: 127, low: 7)
🌀 Cyclomatic Complexity (Whole Project): 1058 (total)
💭 Cognitive Complexity (Whole Project): 581 (total)
➿ N-Path Complexity (Whole Project): 1421 (total)
📏 Lines of Code (Whole Project): 12279 (total)
📝 Non Commenting Source Statements (Whole Project): 4131 (total)
🔗 Class Cohesion (Whole Project): 100.00% (maximum)
⚖️ Weight of Class (Whole Project): 100.00% (maximum)
🚦 Quality Gates
Overall Status: ❌ FAILURE
✅ Passed Gates
- ✅ Overall Tests Success Rate: 100.00 >= 100.00
- ✅ Line Coverage in New Code: 100.00 >= 90.00
- ✅ Branch Coverage in New Code: 100.00 >= 90.00
❌ Failed Gates
- ❌ Potential Bugs in Whole Project: 1.00 <= 0.00
- ❌ Style Violation in Whole Project: 8.00 <= 0.00
Created by Quality Monitor v4.0.0 (#8f591a4)
Details
☀️ Quality Monitor
Tests
Skipped Tests
- io.jenkins.plugins.coverage.metrics.steps.GitForensicsITest#shouldVerifyQualityGate(Baseline, double, double)
- io.jenkins.plugins.coverage.metrics.steps.GitForensicsITest#shouldComputeDeltaInFreestyleJobOnDockerAgent
- io.jenkins.plugins.coverage.metrics.steps.GitForensicsITest#shouldComputeDeltaInPipelineOnDockerAgent(SourceCodeRetention, int)
- io.jenkins.plugins.coverage.metrics.source.DockerAgentSourceCodeITest#verifySourcesInWorkspaceRoot(boolean)
- io.jenkins.plugins.coverage.metrics.source.DockerAgentSourceCodeITest#verifySourcesInApprovedExternalFolder
- io.jenkins.plugins.coverage.metrics.source.DockerAgentSourceCodeITest#refuseSourceCodePaintingInNotApprovedExternalFolder
- io.jenkins.plugins.coverage.metrics.source.DockerAgentSourceCodeITest#verifySourcesInWorkspaceSubFolder(boolean)
⚠️ Style
| Icon | Name | Scope | Warnings |
|---|---|---|---|
| CheckStyle | Whole Project | 3 | |
| PMD | Whole Project | 2 | |
| ☕ | Java Compiler | Whole Project | 3 |
| ➕ | Total | - | 8 |
🐛 Bugs
| Icon | Name | Scope | Warnings |
|---|---|---|---|
| SpotBugs | Whole Project | 1 | |
| 🐛 | Error Prone | Whole Project | 0 |
| ➕ | Total | - | 1 |
🛡️ Vulnerabilities
| Icon | Name | Scope | Warnings |
|---|---|---|---|
| 🛡️ | OWASP Dependency Check | Whole Project | 200 |
👣 Coverage for New Code
| Icon | Name | Scope | Covered % |
|---|---|---|---|
| 〰️ | Line Coverage | Changed Code | 100 |
| ➰ | Branch Coverage | Changed Code | 100 |
| ➕ | Total Ø | - | 100 |
👣 Coverage for Whole Project
| Icon | Name | Scope | Covered % |
|---|---|---|---|
| 〰️ | Line Coverage | Whole Project | 76 |
| ➰ | Branch Coverage | Whole Project | 67 |
| ➕ | Total Ø | - | 71 |
📐 Software Metrics
| Icon | Name | Scope | Total | Min | Max | Mean | Median |
|---|---|---|---|---|---|---|---|
| 🌀 | Cyclomatic Complexity | Whole Project | 1058 | 1 | 8 | 1.51 | 1 |
| 💭 | Cognitive Complexity | Whole Project | 581 | 0 | 13 | 0.73 | 0 |
| ➿ | N-Path Complexity | Whole Project | 1421 | 1 | 72 | 1.79 | 1 |
| 📏 | Lines of Code | Whole Project | 12279 | 4 | 684 | 121.57 | 4 |
| 📝 | Non Commenting Source Statements | Whole Project | 4131 | 1 | 241 | 40.90 | 1 |
| 🔗 | Class Cohesion | Whole Project | 100.00% | 0.00% | 100.00% | 11.89% | 0.00% |
| ⚖️ | Weight of Class | Whole Project | 100.00% | 0.00% | 100.00% | 71.40% | 0.00% |
🚦 Quality Gates
Overall Status: ❌ FAILURE
✅ Passed Gates
- ✅ Overall Tests Success Rate: 100.00 >= 100.00
- ✅ Line Coverage in New Code: 100.00 >= 90.00
- ✅ Branch Coverage in New Code: 100.00 >= 90.00
❌ Failed Gates
- ❌ Potential Bugs in Whole Project: 1.00 <= 0.00
- ❌ Style Violation in Whole Project: 8.00 <= 0.00
Annotations
github-actions / Quality Monitor - Quality gates failed
CheckStyle: JavadocMethodCheck
@return tag should be present and have description.
github-actions / Quality Monitor - Quality gates failed
CheckStyle: JavadocMethodCheck
@return tag should be present and have description.
github-actions / Quality Monitor - Quality gates failed
CheckStyle: JavadocMethodCheck
@return tag should be present and have description.
github-actions / Quality Monitor - Quality gates failed
PMD: DataClass
The class 'CoverageQualityGate' is suspected to be a Data Class (WOC=16.667%, NOPA=0, NOAM=5, WMC=13).
github-actions / Quality Monitor - Quality gates failed
PMD: AvoidLiteralsInIfCondition
Avoid using literals such as "COMPLEXITY_MAXIMUM" in if statements.
github-actions / Quality Monitor - Quality gates failed
Java Compiler: checkstyle:check
(javadoc) JavadocMethod: @return tag should be present and have description.
github-actions / Quality Monitor - Quality gates failed
Java Compiler: checkstyle:check
(javadoc) JavadocMethod: @return tag should be present and have description.
github-actions / Quality Monitor - Quality gates failed
Java Compiler: checkstyle:check
(javadoc) JavadocMethod: @return tag should be present and have description.
github-actions / Quality Monitor - Quality gates failed
SpotBugs: NP_NONNULL_PARAM_VIOLATION
Null passed for non-null parameter of new CoverageQualityGateEvaluator(Collection, CoverageStatistics, Node) in new io.jenkins.plugins.coverage.metrics.steps.CoverageQualityGateEvaluator(Collection, CoverageStatistics)
Check warning on line 1 in commons-jelly-tags-fmt-1.1-jenkins-20250616.jar
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2018-1000052
fmtlib version prior to version 4.1.0 (before commit 0555cea5fc0bf890afe0071a558e44625a34ba85) contains a Memory corruption (SIGSEGV), CWE-134 vulnerability in fmt::print() library function that can result in Denial of Service. This attack appear to be exploitable via Specifying an invalid format specifier in the fmt::print() function results in a SIGSEGV (memory corruption, invalid write). This vulnerability appears to have been fixed in after commit 8cf30aa2be256eba07bb1cefb998c52326e846e7.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2016-9299
The remoting module in Jenkins before 2.32 and LTS before 2.19.3 allows remote attackers to execute arbitrary code via a crafted serialized Java object, which triggers an LDAP query to a third-party server.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2017-1000353
Jenkins versions 2.56 and earlier as well as 2.46.1 LTS and earlier are vulnerable to an unauthenticated remote code execution. An unauthenticated remote code execution vulnerability allowed attackers to transfer a serialized Java `SignedObject` object to the Jenkins CLI, that would be deserialized using a new `ObjectInputStream`, bypassing the existing blacklist-based protection mechanism. We're fixing this issue by adding `SignedObject` to the blacklist. We're also backporting the new HTTP CLI protocol from Jenkins 2.54 to LTS 2.46.2, and deprecating the remoting-based (i.e. Java serialization) CLI protocol, disabling it by default.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2018-1000861
A code execution vulnerability exists in the Stapler web framework used by Jenkins 2.153 and earlier, LTS 2.138.3 and earlier in stapler/core/src/main/java/org/kohsuke/stapler/MetaClass.java that allows attackers to invoke some methods on Java objects by accessing crafted URLs that were not intended to be invoked this way.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21690
Agent processes are able to completely bypass file path filtering by wrapping the file operation in an agent file path in Jenkins 2.318 and earlier, LTS 2.303.2 and earlier.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21691
Creating symbolic links is possible without the 'symlink' agent-to-controller access control permission in Jenkins 2.318 and earlier, LTS 2.303.2 and earlier.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21692
FilePath#renameTo and FilePath#moveAllChildrenTo in Jenkins 2.318 and earlier, LTS 2.303.2 and earlier only check 'read' agent-to-controller access permission on the source path, instead of 'delete'.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21693
When creating temporary files, agent-to-controller access to create those files is only checked after they've been created in Jenkins 2.318 and earlier, LTS 2.303.2 and earlier.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21694
FilePath#toURI, FilePath#hasSymlink, FilePath#absolutize, FilePath#isDescendant, and FilePath#get*DiskSpace do not check any permissions in Jenkins 2.318 and earlier, LTS 2.303.2 and earlier.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21696
Jenkins 2.318 and earlier, LTS 2.303.2 and earlier does not limit agent read/write access to the libs/ directory inside build directories when using the FilePath APIs, allowing attackers in control of agent processes to replace the code of a trusted library with a modified variant. This results in unsandboxed code execution in the Jenkins controller process.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2024-23897
Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable a feature of its CLI command parser that replaces an '@' character followed by a file path in an argument with the file's contents, allowing unauthenticated attackers to read arbitrary files on the Jenkins controller file system.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21685
Jenkins 2.318 and earlier, LTS 2.303.2 and earlier does not check agent-to-controller access to create parent directories in FilePath#mkdirs.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21687
Jenkins 2.318 and earlier, LTS 2.303.2 and earlier does not check agent-to-controller access to create symbolic links when unarchiving a symbolic link in FilePath#untar.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21689
FilePath#unzip and FilePath#untar were not subject to any agent-to-controller access control in Jenkins 2.318 and earlier, LTS 2.303.2 and earlier.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2021-21697
Jenkins 2.318 and earlier, LTS 2.303.2 and earlier allows any agent to read and write the contents of any build directory stored in Jenkins with very few restrictions.
Check warning on line 1 in jenkins-core-2.516.3.jar: jenkins.exe
github-actions / Quality Monitor - Quality gates failed
OWASP Dependency Check: CVE-2017-1000354
Jenkins versions 2.56 and earlier as well as 2.46.1 LTS and earlier are vulnerable to a login command which allowed impersonating any Jenkins user. The `login` command available in the remoting-based CLI stored the encrypted user name of the successfully authenticated user in a cache file used to authenticate further commands. Users with sufficient permission to create secrets in Jenkins, and download their encrypted values (e.g. with Job/Configure permission), were able to impersonate any other Jenkins user on the same instance.