Skip to content

Commit bcf871d

Browse files
authored
Merge pull request #543 from codacy/upload-sourceid-CF-1813
feature: Upload sourceId when available CF-1813
2 parents d09b458 + 9fe896f commit bcf871d

File tree

7 files changed

+49
-15
lines changed

7 files changed

+49
-15
lines changed

cli/src/main/scala/com/codacy/analysis/cli/formatter/Text.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ private[formatter] class Text(val stream: PrintStream) extends Formatter {
3434

3535
private def add(element: Result): Unit = {
3636
element match {
37-
case Issue(patternId, filename, message, level, category, location) =>
37+
case Issue(patternId, filename, message, level, category, location, _) =>
3838
stream.println(prettyMessage(patternId, filename, message, level, category, location))
3939
stream.flush()
4040
case FileError(filename, message) =>

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,24 @@ class ExitStatusSpec extends Specification with NoLanguageFeatures with Mockito
3737
Issue.Message("Mutable variable"),
3838
Result.Level.Err,
3939
Option(Pattern.Category.ErrorProne),
40-
FullLocation(1, 20)),
40+
FullLocation(1, 20),
41+
None),
4142
Issue(
4243
Pattern.Id("NoMutableVariables"),
4344
Paths.get("Test.scala"),
4445
Issue.Message("Mutable variable"),
4546
Result.Level.Err,
4647
Option(Pattern.Category.ErrorProne),
47-
FullLocation(2, 20)),
48+
FullLocation(2, 20),
49+
None),
4850
Issue(
4951
Pattern.Id("NoMutableVariables"),
5052
Paths.get("Test.scala"),
5153
Issue.Message("Mutable variable"),
5254
Result.Level.Err,
5355
Option(Pattern.Category.ErrorProne),
54-
FullLocation(3, 20)))))))) should beEqualTo(ExitStatus.ExitCodes.success)
56+
FullLocation(3, 20),
57+
None))))))) should beEqualTo(ExitStatus.ExitCodes.success)
5558
}
5659

5760
"send exceed max issues number code when issues do not exceed max issues number" in {
@@ -69,21 +72,24 @@ class ExitStatusSpec extends Specification with NoLanguageFeatures with Mockito
6972
Issue.Message("Mutable variable"),
7073
Result.Level.Err,
7174
Option(Pattern.Category.ErrorProne),
72-
FullLocation(1, 20)),
75+
FullLocation(1, 20),
76+
None),
7377
Issue(
7478
Pattern.Id("NoMutableVariables"),
7579
Paths.get("Test.scala"),
7680
Issue.Message("Mutable variable"),
7781
Result.Level.Err,
7882
Option(Pattern.Category.ErrorProne),
79-
FullLocation(2, 20)),
83+
FullLocation(2, 20),
84+
None),
8085
Issue(
8186
Pattern.Id("NoMutableVariables"),
8287
Paths.get("Test.scala"),
8388
Issue.Message("Mutable variable"),
8489
Result.Level.Err,
8590
Option(Pattern.Category.ErrorProne),
86-
FullLocation(3, 20)))))))) should beEqualTo(ExitStatus.ExitCodes.maxAllowedIssuesExceeded)
91+
FullLocation(3, 20),
92+
None))))))) should beEqualTo(ExitStatus.ExitCodes.maxAllowedIssuesExceeded)
8793
}
8894

8995
"send success code when no issues" in {

cli/src/test/scala/com/codacy/analysis/cli/formatter/SarifSpec.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ class SarifSpec extends Specification with NoLanguageFeatures {
3636
Issue.Message("My Security Issue Message"),
3737
securityPatternLevel,
3838
Option(securityPatternCategory),
39-
LineLocation(1))
39+
LineLocation(1),
40+
Some("someSourceId"))
4041

4142
val duplicationPatternId = Pattern.Id("duplication-pattern-id")
4243
val duplicationPatternLevel = Result.Level.Err
@@ -54,7 +55,8 @@ class SarifSpec extends Specification with NoLanguageFeatures {
5455
Issue.Message("My Duplication Issue Message"),
5556
duplicationPatternLevel,
5657
Option(duplicationPatternCategory),
57-
LineLocation(2))
58+
LineLocation(2),
59+
None)
5860

5961
val toolSpecification = Tool.Specification(
6062
Tool.Name("Custom Tool"),

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ class Tool(fullToolSpec: FullToolSpec,
101101
Issue.Message(r.message),
102102
r.level,
103103
r.category,
104-
LineLocation(r.line)))(collection.breakOut): Set[ToolResult]) ++
104+
LineLocation(r.line),
105+
r.sourceId))(collection.breakOut): Set[ToolResult]) ++
105106
res.fileErrors.map(
106107
fe =>
107108
FileError(

model/src/main/scala/com/codacy/analysis/core/model/Result.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ final case class Issue(patternId: results.Pattern.Id,
2020
message: Issue.Message,
2121
level: results.Result.Level,
2222
category: Option[results.Pattern.Category],
23-
location: Location)
23+
location: Location,
24+
sourceId: Option[String])
2425
extends ToolResult
2526

2627
object Issue {

model/src/test/scala/core/serializer/IssuesReportSerializerSpec.scala

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,37 @@ class IssuesReportSerializerSpec extends Specification with NoLanguageFeatures {
2828
Issue.Message(patternMessage),
2929
com.codacy.plugins.api.results.Result.Level.Info,
3030
None,
31-
FullLocation(lineNumber, lineNumber)))))))))
31+
FullLocation(lineNumber, lineNumber),
32+
None))))))))
3233

3334
val expectedJSON =
3435
s"""[{"tool":"$toolName","issues":{"Success":{"results":[{"filename":"${filePath.toString}","results":[{"Issue":{"patternId":{"value":"$patternId"},"filename":"${filePath.toString}","message":{"text":"$patternMessage"},"level":"Info","location":{"FullLocation":{"line":$lineNumber,"column":$lineNumber}}}}]}]}}}]"""
3536

3637
expectedJSON mustEqual issuesReporterAsJson
3738
}
3839

40+
"be converted to json when sourceId is defined" in {
41+
val sourceId = "exampleSourceId"
42+
val issuesReporterAsJson = IssuesReportSerializer.toJsonString(
43+
Set(ToolResults(
44+
toolName,
45+
IssuesAnalysis.Success(Set(IssuesAnalysis.FileResults(
46+
filePath,
47+
Set(Issue(
48+
Pattern.Id(patternId),
49+
filePath,
50+
Issue.Message(patternMessage),
51+
com.codacy.plugins.api.results.Result.Level.Info,
52+
None,
53+
FullLocation(lineNumber, lineNumber),
54+
Some(sourceId)))))))))
55+
56+
val expectedJSON =
57+
s"""[{"tool":"$toolName","issues":{"Success":{"results":[{"filename":"${filePath.toString}","results":[{"Issue":{"patternId":{"value":"$patternId"},"filename":"${filePath.toString}","message":{"text":"$patternMessage"},"level":"Info","location":{"FullLocation":{"line":$lineNumber,"column":$lineNumber}},"sourceId":"exampleSourceId"}}]}]}}}]"""
58+
59+
expectedJSON mustEqual issuesReporterAsJson
60+
}
61+
3962
"have category in generated json" in {
4063
val issuesReporterAsJson = IssuesReportSerializer.toJsonString(
4164
Set(ToolResults(
@@ -48,7 +71,8 @@ class IssuesReportSerializerSpec extends Specification with NoLanguageFeatures {
4871
Issue.Message(patternMessage),
4972
com.codacy.plugins.api.results.Result.Level.Info,
5073
Some(com.codacy.plugins.api.results.Pattern.Category.UnusedCode),
51-
FullLocation(lineNumber, lineNumber)))))))))
74+
FullLocation(lineNumber, lineNumber),
75+
None))))))))
5276

5377
val expectedJSON =
5478
s"""[{"tool":"$toolName","issues":{"Success":{"results":[{"filename":"${filePath.toString}","results":[{"Issue":{"patternId":{"value":"$patternId"},"filename":"${filePath.toString}","message":{"text":"$patternMessage"},"level":"Info","category":"UnusedCode","location":{"FullLocation":{"line":$lineNumber,"column":$lineNumber}}}}]}]}}}]"""

project/Dependencies.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import sbt._
22

33
object Dependencies {
44

5-
val codacyPluginsVersion = "26.2.6_play_2.7"
5+
val codacyPluginsVersion = "27.0.0_play_2.7"
66
val circeVersion = "0.12.3"
77
val specs2Version = "4.8.1"
88
val codacyApiVersion = "49.31.14"
@@ -30,7 +30,7 @@ object Dependencies {
3030
val codacyPlugins =
3131
Seq("codacy-plugins", "codacy-plugins-runner-binary").map("com.codacy" %% _ % codacyPluginsVersion)
3232

33-
lazy val pluginsApi = "com.codacy" %% "codacy-plugins-api" % "9.1.6"
33+
lazy val pluginsApi = "com.codacy" %% "codacy-plugins-api" % "10.0.0"
3434

3535
lazy val pprint = "com.lihaoyi" %% "pprint" % "0.5.7"
3636

0 commit comments

Comments
 (0)