Skip to content

Commit a42905d

Browse files
committed
feature: add metric as an alternative to metrics in config file CY-3986
1 parent 17afe12 commit a42905d

8 files changed

Lines changed: 27 additions & 23 deletions

File tree

cli/src/main/scala/com/codacy/analysis/cli/analysis/AnalyseExecutor.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,9 @@ class AnalyseExecutor(formatter: Formatter,
158158
getExtraConfiguration(configuration.extraToolConfigurations, tool)
159159
(for {
160160
allToolsConfiguration <- configuration.toolConfigurations
161-
toolConfiguration <-
162-
allToolsConfiguration
163-
.find(_.uuid.equalsIgnoreCase(tool.uuid))
164-
.toRight[String](s"Could not find configuration for tool ${tool.name}")
161+
toolConfiguration <- allToolsConfiguration
162+
.find(_.uuid.equalsIgnoreCase(tool.uuid))
163+
.toRight[String](s"Could not find configuration for tool ${tool.name}")
165164
} yield {
166165
val shouldUseConfigFile = toolConfiguration.notEdited && hasConfigFiles
167166
val shouldUseRemoteConfiguredPatterns = !shouldUseConfigFile && toolConfiguration.patterns.nonEmpty

cli/src/test/scala/com/codacy/analysis/cli/ToolSelectorSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ class ToolSelectorSpec extends Specification with NoLanguageFeatures {
6262
rubyTools should beRight
6363
rubyTools must beLike {
6464
case Right(tools) =>
65-
tools.map(_.name) must containTheSameElementsAs(
66-
Seq("Brakeman", "Rubocop", "BundlerAudit", "metrics", "duplication"))
65+
tools.map(_.names.mkString("/")) must containTheSameElementsAs(
66+
Seq("Brakeman", "Rubocop", "BundlerAudit", "metric/metrics", "duplication"))
6767
tools.flatMap(_.supportedLanguages) must containAllOf(Seq(Languages.Ruby))
6868
}
6969
}

core/src/main/scala/com/codacy/analysis/core/analysis/CodacyPluginsAnalyser.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ final class CodacyPluginsAnalyser extends Analyser[Try] {
2626

2727
result match {
2828
case Success(res) =>
29-
logger.info(s"Completed analysis for ${tool.name} with ${res.size} results")
29+
logger.info(s"Completed analysis for ${tool.names.mkString("/")} with ${res.size} results")
3030
case Failure(e) =>
31-
logger.error(e)(AnalyserError.ToolExecutionFailure("analysis", tool.name).message)
31+
logger.error(e)(AnalyserError.ToolExecutionFailure("analysis", tool.names.mkString("/")).message)
3232
}
3333

3434
result
@@ -47,9 +47,9 @@ final class CodacyPluginsAnalyser extends Analyser[Try] {
4747

4848
result match {
4949
case Success(res) =>
50-
logger.info(s"Completed metrics for ${metricsTool.name} with ${res.size} results")
50+
logger.info(s"Completed metrics for ${metricsTool.names.mkString("/")} with ${res.size} results")
5151
case Failure(e) =>
52-
logger.error(e)(AnalyserError.ToolExecutionFailure("metrics", metricsTool.name).message)
52+
logger.error(e)(AnalyserError.ToolExecutionFailure("metrics", metricsTool.names.mkString("/")).message)
5353
}
5454

5555
result.map(_.to[Set])
@@ -66,9 +66,9 @@ final class CodacyPluginsAnalyser extends Analyser[Try] {
6666

6767
result match {
6868
case Success(res) =>
69-
logger.info(s"Completed duplication for ${duplicationTool.name} with ${res.size} results")
69+
logger.info(s"Completed duplication for ${duplicationTool.names.mkString("/")} with ${res.size} results")
7070
case Failure(e) =>
71-
logger.error(e)(AnalyserError.ToolExecutionFailure("duplication", duplicationTool.name).message)
71+
logger.error(e)(AnalyserError.ToolExecutionFailure("duplication", duplicationTool.names.mkString("/")).message)
7272
}
7373

7474
result.map(_.to[Set])

core/src/main/scala/com/codacy/analysis/core/files/FileCollector.scala

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,18 @@ trait FileCollector[T[_]] {
5353

5454
val filters =
5555
Set[Set[Path] => Set[Path]](
56-
filterByGlobs(_, exclusionRules.excludePaths.byTool.getOrElse(tool.name, Set.empty)),
56+
filterByGlobs(_, getExcludePathsForTool(exclusionRules.excludePaths, tool)),
5757
filterByLanguage(tool.languageToRun, exclusionRules.allowedExtensionsByLanguage))
5858
val filteredFiles = filters.foldLeft(target.readableFiles) { case (fs, filter) => filter(fs) }
5959
target.copy(readableFiles = filteredFiles)
6060
}
6161

62+
private def getExcludePathsForTool(excludePaths: ExcludePaths, tool: ITool): Set[Glob] = {
63+
tool.names.foldLeft(Set.empty[Glob]){ (accum, next) =>
64+
excludePaths.byTool.getOrElse(next,accum)
65+
}
66+
}
67+
6268
private def filterByGlobs(files: Set[Path], excludeGlobs: Set[Glob]): Set[Path] = {
6369
if (excludeGlobs.nonEmpty) {
6470
files.filterNot(file => excludeGlobs.exists(_.matches(file.toString)))

core/src/main/scala/com/codacy/analysis/core/tools/DuplicationTool.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import scala.util.Try
1717

1818
class DuplicationTool(private val duplicationTool: traits.DuplicationTool, val languageToRun: Language) extends ITool {
1919

20-
override def name: String = "duplication"
20+
override def names: Seq[String] = Seq("duplication")
2121
override def supportedLanguages: Set[Language] = duplicationTool.languages.to[Set]
2222

2323
def run(directory: File,

core/src/main/scala/com/codacy/analysis/core/tools/ITool.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.codacy.analysis.core.tools
33
import com.codacy.plugins.api.languages.Language
44

55
trait ITool {
6-
def name: String
6+
def names: Seq[String]
77
def supportedLanguages: Set[Language]
88
def languageToRun: Language
99
}

core/src/main/scala/com/codacy/analysis/core/tools/MetricsTool.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import scala.concurrent.duration.Duration
1818
import scala.util.Try
1919

2020
class MetricsTool(private val metricsTool: traits.MetricsTool, val languageToRun: Language) extends ITool {
21-
override def name: String = "metrics"
21+
override def names: Seq[String] = Seq("metric", "metrics")
2222

2323
override def supportedLanguages: Set[Language] = metricsTool.languages.to[Set]
2424

core/src/main/scala/com/codacy/analysis/core/tools/Tool.scala

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ class Tool(fullToolSpec: FullToolSpec, defaultRunTimeout: Duration)(private val
4545

4646
private val logger: Logger = getLogger
4747

48-
override def name: String = tool.shortName
48+
override def names: Seq[String] = Seq(tool.shortName)
4949
def uuid: String = tool.uuid
50+
def name: String = tool.shortName
5051

5152
override def supportedLanguages: Set[Language] = tool.languages
5253

@@ -166,12 +167,10 @@ class ToolCollector(toolRepository: ToolRepository) {
166167
Left(AnalyserError.NoActiveToolInConfiguration)
167168
} else {
168169
val toolsIdentified = toolUuids.flatMap { toolUuid =>
169-
from(toolUuid, languages).fold(
170-
{ _ =>
171-
logger.warn(s"Failed to get tool for uuid:$toolUuid")
172-
Set.empty[Tool]
173-
},
174-
identity)
170+
from(toolUuid, languages).fold({ _ =>
171+
logger.warn(s"Failed to get tool for uuid:$toolUuid")
172+
Set.empty[Tool]
173+
}, identity)
175174
}
176175

177176
if (toolsIdentified.size != toolUuids.size) {

0 commit comments

Comments
 (0)