Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply easy fixes/inspections #331

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import sbt.ScriptedPlugin.autoImport.scriptedLaunchOpts

import java.io.File
import scala.sys.process._

lazy val generateXMLFiles =
taskKey[Unit]("Generate XML files (for test)")
generateXMLFiles := {
Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/org/scoverage/coveralls/CIService.scala
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package org.scoverage.coveralls

import scala.io.Source
import io.circe._
import io.circe.parser
import io.circe.generic.auto._

import scala.io.Source

trait CIService {
def name: String
def jobId: Option[String]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package org.scoverage.coveralls

// import scala.language.postfixOps
import java.io.File

import sbt.Logger

import java.io.File

class CoberturaMultiSourceReader(
coberturaFile: File,
sourceDirs: Seq[File],
Expand Down Expand Up @@ -87,7 +86,7 @@ class CoberturaMultiSourceReader(
sfs
}

def sourceFilenames = sourceFiles.map(_.getCanonicalPath)
def sourceFilenames: Set[String] = sourceFiles.map(_.getCanonicalPath)

/** Splits a path to a source file into two parts:
* 1. the absolute path to source directory that contain this sourceFile 2.
Expand All @@ -112,14 +111,14 @@ class CoberturaMultiSourceReader(
(prefix, relativePath)
}

protected def lineCoverage(sourceFile: String) = {
protected def lineCoverage(sourceFile: String): Map[Int, Int] = {
val filenamePath =
splitPath(new File(sourceFile))._2

lineCoverageMap(filenamePath)
}

def reportForSource(source: String) = {
def reportForSource(source: String): SourceFileReport = {
val fileSrc = sourceEncoding match {
case Some(enc) => scala.io.Source.fromFile(source, enc)
case None => scala.io.Source.fromFile(source)
Expand Down
21 changes: 10 additions & 11 deletions src/main/scala/org/scoverage/coveralls/CoverallPayloadWriter.scala
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package org.scoverage.coveralls

import com.fasterxml.jackson.core.{JsonEncoding, JsonFactory, JsonGenerator}
import sbt.Logger

import java.io.{File, FileInputStream}
import java.security.{DigestInputStream, MessageDigest}

import com.fasterxml.jackson.core.{JsonFactory, JsonEncoding}

import sbt.Logger

class CoverallPayloadWriter(
repoRootDir: File,
coverallsFile: File,
Expand All @@ -17,18 +16,18 @@ class CoverallPayloadWriter(
)(implicit log: Logger) {
import gitClient._

val gen = generator(coverallsFile)
val gen: JsonGenerator = generator(coverallsFile)

def generator(file: File) = {
def generator(file: File): JsonGenerator = {
if (!file.getParentFile.exists) file.getParentFile.mkdirs
val factory = new JsonFactory
factory.createGenerator(file, JsonEncoding.UTF8)
}

def start() = {
def start(): Unit = {
gen.writeStartObject()

def writeOpt(fieldName: String, holder: Option[String]) =
def writeOpt(fieldName: String, holder: Option[String]): Unit =
holder foreach { gen.writeStringField(fieldName, _) }

coverallsAuth match {
Expand All @@ -52,7 +51,7 @@ class CoverallPayloadWriter(
gen.writeStartArray()
}

private def addGitInfo() = {
private def addGitInfo(): Unit = {
gen.writeFieldName("git")
gen.writeStartObject()

Expand Down Expand Up @@ -85,7 +84,7 @@ class CoverallPayloadWriter(
gen.writeEndObject()
}

private def addGitRemotes(remotes: Seq[String]) = {
private def addGitRemotes(remotes: Seq[String]): Unit = {
remotes.foreach(remote => {
gen.writeStartObject()
gen.writeStringField("name", remote)
Expand All @@ -94,7 +93,7 @@ class CoverallPayloadWriter(
})
}

def addSourceFile(report: SourceFileReport) = {
def addSourceFile(report: SourceFileReport): Unit = {
val repoRootDirStr = repoRootDir.getCanonicalPath + File.separator

// create a name relative to the project root (rather than the module root)
Expand Down
11 changes: 3 additions & 8 deletions src/main/scala/org/scoverage/coveralls/CoverallsAuth.scala
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
package org.scoverage.coveralls

import scala.io.Source
import io.circe._
import io.circe.parser
import io.circe.generic.auto._

/** The strategy to use when authenticating against Coveralls.
*/
sealed trait CoverallsAuth
sealed trait CoverallsAuth extends Product with Serializable

/** Auth strategy where a Coveralls-specific token is used. Works with every CI
* service.
*/
case class CoverallsRepoToken(token: String) extends CoverallsAuth
final case class CoverallsRepoToken(token: String) extends CoverallsAuth

/** Auth strategy where a token specific to the CI service is used, such as a
* GitHub token. Works on selected CI services supported by Coveralls.
*/
case class CIServiceToken(token: String) extends CoverallsAuth
final case class CIServiceToken(token: String) extends CoverallsAuth

/** Auth strategy where no token is passed. This seems to work for Travis.
*/
Expand Down
48 changes: 26 additions & 22 deletions src/main/scala/org/scoverage/coveralls/CoverallsClient.scala
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
package org.scoverage.coveralls

import scala.io.{Codec, Source}
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.scala.DefaultScalaModule
import scalaj.http.{MultiPart, Http}
import scalaj.http.HttpOptions._
import scalaj.http.{Http, MultiPart}

import java.io.File
import java.net.{InetAddress, Socket}
import javax.net.ssl.{SSLSocket, SSLSocketFactory}
import java.net.{Socket, InetAddress}
import com.fasterxml.jackson.databind.ObjectMapper
import scala.io.{Codec, Source}

class CoverallsClient(endpoint: String, httpClient: HttpClient) {

import CoverallsClient._

val mapper = newMapper
val mapper: ObjectMapper = newMapper
def url: String = s"$endpoint/api/v1/jobs"

def newMapper = {
def newMapper: ObjectMapper = {
val mapper = new ObjectMapper
mapper.registerModule(DefaultScalaModule)
mapper
Expand Down Expand Up @@ -97,9 +96,10 @@ class ScalaJHttpClient extends HttpClient {
}

class OpenJdkSafeSsl extends SSLSocketFactory {
val child = SSLSocketFactory.getDefault.asInstanceOf[SSLSocketFactory]
val child: SSLSocketFactory =
SSLSocketFactory.getDefault.asInstanceOf[SSLSocketFactory]

val safeCiphers = Array(
val safeCiphers: Array[String] = Array(
"SSL_RSA_WITH_RC4_128_MD5",
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
Expand All @@ -123,28 +123,32 @@ class OpenJdkSafeSsl extends SSLSocketFactory {
.asInstanceOf[SSLSocketFactory]
.getSupportedCipherSuites

def getDefaultCipherSuites = Array.empty

def getSupportedCipherSuites = Array.empty
def getDefaultCipherSuites: Array[String] = Array.empty

def createSocket(p1: Socket, p2: String, p3: Int, p4: Boolean) = safeSocket(
child.createSocket(p1, p2, p3, p4)
)
def getSupportedCipherSuites: Array[String] = Array.empty

def createSocket(p1: String, p2: Int) = safeSocket(child.createSocket(p1, p2))
def createSocket(p1: Socket, p2: String, p3: Int, p4: Boolean): Socket =
safeSocket(
child.createSocket(p1, p2, p3, p4)
)

def createSocket(p1: String, p2: Int, p3: InetAddress, p4: Int) = safeSocket(
child.createSocket(p1, p2, p3, p4)
def createSocket(p1: String, p2: Int): Socket = safeSocket(
child.createSocket(p1, p2)
)

def createSocket(p1: InetAddress, p2: Int) = safeSocket(
def createSocket(p1: String, p2: Int, p3: InetAddress, p4: Int): Socket =
safeSocket(
child.createSocket(p1, p2, p3, p4)
)

def createSocket(p1: InetAddress, p2: Int): Socket = safeSocket(
child.createSocket(p1, p2)
)

def createSocket(p1: InetAddress, p2: Int, p3: InetAddress, p4: Int) =
def createSocket(p1: InetAddress, p2: Int, p3: InetAddress, p4: Int): Socket =
safeSocket(child.createSocket(p1, p2, p3, p4))

def safeSocket(sock: Socket) = sock match {
def safeSocket(sock: Socket): Socket = sock match {
case ssl: SSLSocket =>
ssl.setEnabledCipherSuites(safeCiphers); ssl
case other => other
Expand Down
26 changes: 12 additions & 14 deletions src/main/scala/org/scoverage/coveralls/CoverallsPlugin.scala
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package org.scoverage.coveralls

import _root_.sbt.ScopeFilter
import _root_.sbt.ThisProject
import com.fasterxml.jackson.core.JsonEncoding
import sbt.Keys._
import sbt._
import sbt.internal.util.ManagedLogger
import sbt.{ScopeFilter, ThisProject, _}

import scala.io.Source
import java.io.File
import scala.io.Source

object Imports {
object CoverallsKeys {
Expand Down Expand Up @@ -36,8 +34,8 @@ object CoverallsPlugin extends AutoPlugin {
override def trigger = allRequirements

val autoImport = Imports
import autoImport._
import CoverallsKeys._
import autoImport.*
import CoverallsKeys.*

lazy val coveralls = taskKey[Unit](
"Uploads scala code coverage to coveralls.io"
Expand Down Expand Up @@ -67,7 +65,7 @@ object CoverallsPlugin extends AutoPlugin {
) // must be outside of the 'coverageAggregate' task (see: https://github.com/sbt/sbt/issues/1095 or https://github.com/sbt/sbt/issues/780)

def coverallsTask = Def.task {
implicit val log = streams.value.log
implicit val log: ManagedLogger = streams.value.log

if (!coberturaFile.value.exists) {
sys.error(
Expand Down Expand Up @@ -167,13 +165,13 @@ object CoverallsPlugin extends AutoPlugin {
}
}

def apiHttpClient = new ScalaJHttpClient
def apiHttpClient: ScalaJHttpClient = new ScalaJHttpClient

def travisJobIdent = sys.env.get("TRAVIS_JOB_ID")
def travisJobIdent: Option[String] = sys.env.get("TRAVIS_JOB_ID")

def githubActionsRunIdent = sys.env.get("GITHUB_RUN_ID")
def githubActionsRunIdent: Option[String] = sys.env.get("GITHUB_RUN_ID")

def repoTokenFromFile(path: String) = {
def repoTokenFromFile(path: String): Option[String] = {
try {
val source = Source.fromFile(path)
val repoToken = source.mkString.trim
Expand All @@ -187,13 +185,13 @@ object CoverallsPlugin extends AutoPlugin {
def userRepoToken(
coverallsToken: Option[String],
coverallsTokenFile: Option[String]
) =
): Option[String] =
sys.env
.get("COVERALLS_REPO_TOKEN")
.orElse(coverallsToken)
.orElse(coverallsTokenFile.flatMap(repoTokenFromFile))

def userEndpoint(coverallsEndpoint: Option[String]) =
def userEndpoint(coverallsEndpoint: Option[String]): Option[String] =
sys.env
.get("COVERALLS_ENDPOINT")
.orElse(coverallsEndpoint)
Expand Down
16 changes: 9 additions & 7 deletions src/main/scala/org/scoverage/coveralls/GitClient.scala
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package org.scoverage.coveralls

import java.io.File
import java.nio.file.Files.lines

import org.eclipse.jgit.api.Git
import org.eclipse.jgit.lib.{Repository, StoredConfig}
import org.eclipse.jgit.storage.file.FileRepositoryBuilder
import org.scoverage.coveralls.GitClient.GitRevision
import sbt.Logger

import java.io.File
import java.nio.file.Files.lines
import scala.util.matching.Regex

object GitClient {
case class GitRevision(
id: String,
Expand All @@ -23,11 +25,11 @@ class GitClient(cwd: File)(implicit log: Logger) {

import scala.collection.JavaConverters._

val gitDirLineRegex = """^gitdir: (.*)""".r
val gitDirLineRegex: Regex = """^gitdir: (.*)""".r

val gitFile = new File(cwd, ".git")

val resolvedGitDir =
val resolvedGitDir: File =
if (gitFile.isFile)
lines(gitFile.toPath)
.iterator()
Expand All @@ -44,8 +46,8 @@ class GitClient(cwd: File)(implicit log: Logger) {
else
gitFile

val repository = FileRepositoryBuilder.create(resolvedGitDir)
val storedConfig = repository.getConfig
val repository: Repository = FileRepositoryBuilder.create(resolvedGitDir)
val storedConfig: StoredConfig = repository.getConfig
log.info("Repository = " + repository.getDirectory)

def remotes: Seq[String] = {
Expand Down
2 changes: 2 additions & 0 deletions src/main/scala/org/scoverage/coveralls/Utils.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.scoverage.coveralls

import java.io.File
import scala.annotation.tailrec

object Utils {
def mkFileFromPath(path: Seq[String]): File = {
Expand All @@ -9,6 +10,7 @@ object Utils {
mkFileFromPath(new File(p), ps)
}

@tailrec
def mkFileFromPath(base: File, path: Seq[String]): File = path match {
case p :: ps => mkFileFromPath(new File(base, p), ps)
case _ => base
Expand Down
5 changes: 2 additions & 3 deletions src/main/scala/org/scoverage/coveralls/XmlHelper.scala
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package org.scoverage.coveralls

import java.io.{File, FileInputStream}
import javax.xml.parsers.SAXParserFactory

import org.xml.sax.InputSource

import java.io.{File, FileInputStream}
import javax.xml.parsers.SAXParserFactory
import scala.util.Try
import scala.xml.XML

Expand Down
6 changes: 1 addition & 5 deletions src/test/scala/org/scoverage/coveralls/CIServiceTest.scala
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
package org.scoverage.coveralls

import org.scalatest.wordspec.AnyWordSpec
import org.scalatest.matchers.should.Matchers

import sbt.ConsoleLogger

import scala.Option
import org.scalatest.wordspec.AnyWordSpec

class CIServiceTest extends AnyWordSpec with Matchers {

Expand Down
Loading
Loading