@@ -15,7 +15,10 @@ import com.codacy.analysis.core.utils.InheritanceOps.InheritanceOps
1515import com .codacy .analysis .core .utils .SeqOps ._
1616import com .codacy .analysis .core .utils .TryOps ._
1717import com .codacy .analysis .core .utils .{LanguagesHelper , SetOps }
18+ import com .codacy .plugins .api .PatternDescription
1819import com .codacy .plugins .api .languages .Language
20+ import com .codacy .plugins .results .traits .DockerToolDocumentation
21+ import com .codacy .plugins .utils .impl .CacheDockerHelper
1922import org .log4s .{Logger , getLogger }
2023import play .api .libs .json .JsValue
2124
@@ -54,10 +57,18 @@ class AnalyseExecutor(formatter: Formatter,
5457
5558 tool match {
5659 case tool : Tool =>
60+ val toolDocumentation = ToolCollector
61+ .fromUuid(tool.uuid)
62+ .map(dockerTool => new DockerToolDocumentation (dockerTool, new CacheDockerHelper ()))
5763 val toolHasConfigFiles = fileCollector.hasConfigurationFiles(tool, allFiles)
5864 val analysisResults =
5965 issues(tool, filteredFiles, configuration.toolConfiguration, toolHasConfigFiles)
60- IssuesToolExecutorResult (tool.name, filteredFiles.readableFiles, analysisResults)
66+ IssuesToolExecutorResult (
67+ tool.name,
68+ toolDocumentation.flatMap(_.toolSpecification),
69+ toolDocumentation.flatMap(_.patternDescriptions).getOrElse(Set .empty[PatternDescription ]),
70+ filteredFiles.readableFiles,
71+ analysisResults)
6172 case metricsTool : MetricsTool =>
6273 val analysisResults =
6374 analyser.metrics(metricsTool, filteredFiles.directory, Some (filteredFiles.readableFiles))
@@ -91,7 +102,13 @@ class AnalyseExecutor(formatter: Formatter,
91102 val executorResults = issuesResults ++ duplicationResults ++ processedFileMetrics
92103
93104 formatter.begin()
94- executorResults.foreach(_.analysisResults.foreach(results => formatter.addAll(results.to[List ])))
105+ executorResults.foreach {
106+ case toolResults : IssuesToolExecutorResult =>
107+ toolResults.analysisResults.foreach(results =>
108+ formatter.addAll(toolResults.toolSpecification, toolResults.patternDescriptions, results.to[List ]))
109+ case toolResults =>
110+ toolResults.analysisResults.foreach(results => formatter.addAll(None , Set .empty, results.to[List ]))
111+ }
95112 formatter.end()
96113
97114 executorResults
@@ -180,7 +197,12 @@ object AnalyseExecutor {
180197 def analysisResults : Try [Set [T ]]
181198 }
182199
183- final case class IssuesToolExecutorResult (toolName : String , files : Set [Path ], analysisResults : Try [Set [ToolResult ]])
200+ final case class IssuesToolExecutorResult (
201+ toolName : String ,
202+ toolSpecification : Option [com.codacy.plugins.api.results.Tool .Specification ],
203+ patternDescriptions : Set [PatternDescription ],
204+ files : Set [Path ],
205+ analysisResults : Try [Set [ToolResult ]])
184206 extends ExecutorResult [ToolResult ]
185207
186208 final case class MetricsToolExecutorResult (language : String , files : Set [Path ], analysisResults : Try [Set [FileMetrics ]])
0 commit comments