@@ -2,16 +2,24 @@ package com.codacy
22
33import java .io .File
44
5- import com .codacy .api .Language
6- import com .codacy .api .client .CodacyClient
5+ import com .codacy .api .client .{CodacyClient , FailedResponse , SuccessfulResponse }
76import com .codacy .api .helpers .FileHelper
87import com .codacy .api .service .CoverageServices
8+ import com .codacy .api .{CoverageFileReport , Language }
99import com .codacy .parsers .implementation .CoberturaParser
10+ import rapture .json .{Json , _ }
1011import sbt .Keys ._
1112import sbt ._
1213
1314object CodacyCoveragePlugin extends AutoPlugin {
1415
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+
1523 object AutoImport {
1624 val codacyCoverage = taskKey[Unit ](" Upload coverage reports to Codacy." )
1725 val codacyProjectToken = settingKey[Option [String ]](" Your project token." )
@@ -45,13 +53,13 @@ object CodacyCoveragePlugin extends AutoPlugin {
4553
4654 val commitUUID =
4755 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)
5563
5664 FileHelper .withTokenAndCommit(codacyToken, commitUUID) {
5765 case (projectToken, commitUUID) =>
@@ -67,12 +75,12 @@ object CodacyCoveragePlugin extends AutoPlugin {
6775 logger.info(s " Uploading coverage data... " )
6876
6977 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 " )
7280 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 }" )
7684 Right (state)
7785 }
7886 } match {
0 commit comments