@@ -2,16 +2,24 @@ package com.codacy
2
2
3
3
import java .io .File
4
4
5
- import com .codacy .api .Language
6
- import com .codacy .api .client .CodacyClient
5
+ import com .codacy .api .client .{CodacyClient , FailedResponse , SuccessfulResponse }
7
6
import com .codacy .api .helpers .FileHelper
8
7
import com .codacy .api .service .CoverageServices
8
+ import com .codacy .api .{CoverageFileReport , Language }
9
9
import com .codacy .parsers .implementation .CoberturaParser
10
+ import rapture .json .{Json , _ }
10
11
import sbt .Keys ._
11
12
import sbt ._
12
13
13
14
object CodacyCoveragePlugin extends AutoPlugin {
14
15
16
+ implicit val (ast, stringParser, jsonSerializer) = {
17
+ import rapture .json .jsonBackends .circe ._
18
+ (implicitJsonAst, implicitJsonStringParser, circeJValueSerializer)
19
+ }
20
+
21
+ private implicit lazy val ser = implicitly[Serializer [CoverageFileReport , Json ]]
22
+
15
23
object AutoImport {
16
24
val codacyCoverage = taskKey[Unit ](" Upload coverage reports to Codacy." )
17
25
val codacyProjectToken = settingKey[Option [String ]](" Your project token." )
@@ -45,13 +53,13 @@ object CodacyCoveragePlugin extends AutoPlugin {
45
53
46
54
val commitUUID =
47
55
sys.env.get(" CI_COMMIT" ) orElse
48
- sys.env.get(" TRAVIS_PULL_REQUEST_SHA" ) orElse
49
- sys.env.get(" TRAVIS_COMMIT" ) orElse
50
- sys.env.get(" DRONE_COMMIT" ) orElse
51
- sys.env.get(" CIRCLE_SHA1" ) orElse
52
- sys.env.get(" CI_COMMIT_ID" ) orElse
53
- sys.env.get(" WERCKER_GIT_COMMIT" )
54
- .filter(_.trim.nonEmpty)
56
+ sys.env.get(" TRAVIS_PULL_REQUEST_SHA" ) orElse
57
+ sys.env.get(" TRAVIS_COMMIT" ) orElse
58
+ sys.env.get(" DRONE_COMMIT" ) orElse
59
+ sys.env.get(" CIRCLE_SHA1" ) orElse
60
+ sys.env.get(" CI_COMMIT_ID" ) orElse
61
+ sys.env.get(" WERCKER_GIT_COMMIT" )
62
+ .filter(_.trim.nonEmpty)
55
63
56
64
FileHelper .withTokenAndCommit(codacyToken, commitUUID) {
57
65
case (projectToken, commitUUID) =>
@@ -67,12 +75,12 @@ object CodacyCoveragePlugin extends AutoPlugin {
67
75
logger.info(s " Uploading coverage data... " )
68
76
69
77
coverageServices.sendReport(commitUUID, Language .Scala , report) match {
70
- case requestResponse if requestResponse.hasError =>
71
- sys.error(s " Failed to upload data. Reason: ${requestResponse.message} " )
78
+ case FailedResponse (error) =>
79
+ sys.error(s " Failed to upload data. Reason: $error " )
72
80
state.exit(ok = false )
73
- Left (requestResponse.message )
74
- case requestResponse =>
75
- logger.success(s " Coverage data uploaded. ${requestResponse.message }" )
81
+ Left (error )
82
+ case SuccessfulResponse (response) =>
83
+ logger.success(s " Coverage data uploaded. ${response.success }" )
76
84
Right (state)
77
85
}
78
86
} match {
0 commit comments