(refs #2337) Scala 2.13.0 (#2348)

This commit is contained in:
takako shimamoto
2019-08-04 21:47:48 +09:00
committed by Naoki Takezoe
parent 88db21ef07
commit 33b46869b6
34 changed files with 83 additions and 72 deletions

View File

@@ -17,7 +17,7 @@ sourcesInBase := false
organization := Organization
name := Name
version := GitBucketVersion
scalaVersion := "2.12.8"
scalaVersion := "2.13.0"
scalafmtOnCompile := true
@@ -47,7 +47,7 @@ libraryDependencies ++= Seq(
"org.apache.httpcomponents" % "httpclient" % "4.5.6",
"org.apache.sshd" % "apache-sshd" % "2.1.0" exclude ("org.slf4j", "slf4j-jdk14") exclude ("org.apache.sshd", "sshd-mina") exclude ("org.apache.sshd", "sshd-netty"),
"org.apache.tika" % "tika-core" % "1.19.1",
"com.github.takezoe" %% "blocking-slick-32" % "0.0.11",
"com.github.takezoe" %% "blocking-slick-32" % "0.0.12",
"com.novell.ldap" % "jldap" % "2009-10-07",
"com.h2database" % "h2" % "1.4.197",
"org.mariadb.jdbc" % "mariadb-java-client" % "2.4.2",
@@ -59,7 +59,7 @@ libraryDependencies ++= Seq(
"fr.brouillard.oss.security.xhub" % "xhub4j-core" % "1.1.0",
"com.github.bkromhout" % "java-diff-utils" % "2.1.1",
"org.cache2k" % "cache2k-all" % "1.2.0.Final",
"com.enragedginger" %% "akka-quartz-scheduler" % "1.7.0-akka-2.5.x" exclude ("c3p0", "c3p0") exclude ("com.zaxxer", "HikariCP-java6"),
"com.enragedginger" %% "akka-quartz-scheduler" % "1.8.1-akka-2.5.x" exclude ("com.mchange", "c3p0") exclude ("com.zaxxer", "HikariCP-java6"),
"net.coobird" % "thumbnailator" % "0.4.8",
"com.github.zafarkhaja" % "java-semver" % "0.9.0",
"com.nimbusds" % "oauth2-oidc-sdk" % "5.64.4",
@@ -77,7 +77,7 @@ libraryDependencies ++= Seq(
)
// Compiler settings
scalacOptions := Seq("-deprecation", "-language:postfixOps", "-opt:l:method", "-Xfuture")
scalacOptions := Seq("-deprecation", "-language:postfixOps", "-opt:l:method")
javacOptions in compile ++= Seq("-target", "8", "-source", "8")
javaOptions in Jetty += "-Dlogback.configurationFile=/logback-dev.xml"

View File

@@ -29,7 +29,7 @@ To build war file, run the following command:
$ sbt package
```
`gitbucket_2.12-x.x.x.war` is generated into `target/scala-2.12`.
`gitbucket_2.13-x.x.x.war` is generated into `target/scala-2.13`.
To build an executable war file, run
@@ -58,4 +58,4 @@ If you don't have docker, you can skip docker tests which require docker as foll
```shell
$ sbt "testOnly * -- -l ExternalDBTest"
```
```

View File

@@ -5,7 +5,6 @@ import java.io.File
import gitbucket.core.account.html
import gitbucket.core.helper
import gitbucket.core.model._
import gitbucket.core.plugin.PluginRegistry
import gitbucket.core.service._
import gitbucket.core.service.WebHookService._
import gitbucket.core.ssh.SshUtil
@@ -543,7 +542,7 @@ trait AccountControllerBase extends AccountManagementControllerBase {
case e: java.net.UnknownHostException => Map("error" -> ("Unknown host " + e.getMessage))
case e: java.lang.IllegalArgumentException => Map("error" -> ("invalid url"))
case e: org.apache.http.client.ClientProtocolException => Map("error" -> ("invalid url"))
case NonFatal(e) => Map("error" -> (e.getClass + " " + e.getMessage))
case NonFatal(e) => Map("error" -> (s"${e.getClass} ${e.getMessage}"))
}
contentType = formats("json")

View File

@@ -365,7 +365,7 @@ trait AccountManagementControllerBase extends ControllerBase {
params: Map[String, Seq[String]],
messages: Messages
): Option[String] = {
val extraMailAddresses = params.filterKeys(k => k.startsWith("extraMailAddresses"))
val extraMailAddresses = params.view.filterKeys(k => k.startsWith("extraMailAddresses"))
if (extraMailAddresses.exists {
case (k, v) =>
v.contains(value)
@@ -388,7 +388,7 @@ trait AccountManagementControllerBase extends ControllerBase {
params: Map[String, Seq[String]],
messages: Messages
): Option[String] = {
val extraMailAddresses = params.filterKeys(k => k.startsWith("extraMailAddresses"))
val extraMailAddresses = params.view.filterKeys(k => k.startsWith("extraMailAddresses"))
if (Some(value) == params.optionValue("mailAddress") || extraMailAddresses.count {
case (k, v) =>
v.contains(value)

View File

@@ -145,7 +145,7 @@ trait IssuesControllerBase extends ControllerBase {
form.assignedUserName,
form.milestoneId,
form.priorityId,
form.labelNames.toArray.flatMap(_.split(",")),
form.labelNames.toSeq.flatMap(_.split(",")),
context.loginAccount.get
)

View File

@@ -254,9 +254,9 @@ trait RepositorySettingsControllerBase extends ControllerBase {
using(Git.open(getRepositoryDir(repository.owner, repository.name))) {
git =>
import scala.collection.JavaConverters._
import scala.concurrent.duration._
import scala.concurrent._
import scala.jdk.CollectionConverters._
import scala.util.control.NonFatal
import org.apache.http.util.EntityUtils
import scala.concurrent.ExecutionContext.Implicits.global
@@ -298,7 +298,7 @@ trait RepositorySettingsControllerBase extends ControllerBase {
case e: java.net.UnknownHostException => Map("error" -> ("Unknown host " + e.getMessage))
case e: java.lang.IllegalArgumentException => Map("error" -> ("invalid url"))
case e: org.apache.http.client.ClientProtocolException => Map("error" -> ("invalid url"))
case NonFatal(e) => Map("error" -> (e.getClass + " " + e.getMessage))
case NonFatal(e) => Map("error" -> (s"${e.getClass} ${e.getMessage}"))
}
contentType = formats("json")

View File

@@ -258,7 +258,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
def getSummary(statuses: List[CommitStatus]): (CommitState, String) = {
val stateMap = statuses.groupBy(_.state)
val state = CommitState.combine(stateMap.keySet)
val summary = stateMap.map { case (keyState, states) => states.size + " " + keyState.name }.mkString(", ")
val summary = stateMap.map { case (keyState, states) => s"${states.size} ${keyState.name}" }.mkString(", ")
state -> summary
}
@@ -351,7 +351,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
repository = repository,
branch = form.branch,
path = form.path,
files = files,
files = files.toIndexedSeq,
message = form.message.getOrElse("Add files via upload"),
loginAccount = context.loginAccount.get
) {
@@ -980,7 +980,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
val date = commit.getCommitterIdent.getWhen
val sha1 = oid.getName()
val repositorySuffix = (if (sha1.startsWith(revision)) sha1 else revision).replace('/', '-')
val pathSuffix = if (path.isEmpty) "" else '-' + path.replace('/', '-')
val pathSuffix = if (path.isEmpty) "" else s"-${path.replace('/', '-')}"
val baseName = repository.name + "-" + repositorySuffix + pathSuffix
using(new TreeWalk(git.getRepository)) { treeWalk =>

View File

@@ -245,10 +245,10 @@ trait SystemSettingsControllerBase extends AccountManagementControllerBase {
}
}
tables += Table(tableName.toUpperCase, columns)
tables += Table(tableName.toUpperCase, columns.toSeq)
}
}
html.dbviewer(tables)
html.dbviewer(tables.toSeq)
})
post("/admin/dbviewer/_query")(adminOnly {

View File

@@ -6,7 +6,8 @@ import gitbucket.core.util.ReferrerAuthenticator
import gitbucket.core.util.SyntaxSugars.using
import gitbucket.core.util.Implicits._
import org.eclipse.jgit.api.Git
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
trait ApiGitReferenceControllerBase extends ControllerBase {
self: ReferrerAuthenticator =>

View File

@@ -13,7 +13,7 @@ import gitbucket.core.util._
import org.eclipse.jgit.api.Git
import org.scalatra.NoContent
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
trait ApiPullRequestControllerBase extends ControllerBase {
self: AccountService

View File

@@ -17,17 +17,15 @@ import gitbucket.core.service.SystemSettingsService
import gitbucket.core.service.SystemSettingsService.SystemSettings
import gitbucket.core.util.DatabaseConfig
import gitbucket.core.util.Directory._
import gitbucket.core.util.HttpClientUtil._
import io.github.gitbucket.solidbase.Solidbase
import io.github.gitbucket.solidbase.manager.JDBCVersionManager
import io.github.gitbucket.solidbase.model.Module
import org.apache.commons.io.FileUtils
import org.apache.http.client.methods.HttpGet
import org.apache.sshd.server.command.Command
import org.slf4j.LoggerFactory
import play.twirl.api.Html
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
class PluginRegistry {
@@ -415,7 +413,6 @@ case class PluginInfo(
class PluginWatchThread(context: ServletContext, dir: String) extends Thread with SystemSettingsService {
import gitbucket.core.model.Profile.profile.blockingApi._
import scala.collection.JavaConverters._
private val logger = LoggerFactory.getLogger(classOf[PluginWatchThread])
@@ -445,7 +442,7 @@ class PluginWatchThread(context: ServletContext, dir: String) extends Thread wit
}
if (events.nonEmpty) {
events.foreach { event =>
logger.info(event.kind + ": " + event.context)
logger.info(s"${event.kind}: ${event.context}")
}
new Thread {
override def run(): Unit = {

View File

@@ -3,14 +3,14 @@ package gitbucket.core.service
import java.io.ByteArrayInputStream
import gitbucket.core.model.GpgKey
import collection.JavaConverters._
import gitbucket.core.model.Profile._
import gitbucket.core.model.Profile.profile.blockingApi._
import org.bouncycastle.bcpg.ArmoredInputStream
import org.bouncycastle.openpgp.PGPPublicKeyRing
import org.bouncycastle.openpgp.bc.BcPGPObjectFactory
import scala.jdk.CollectionConverters._
trait GpgKeyService {
def getGpgPublicKeys(userName: String)(implicit s: Session): List[GpgKey] =
GpgKeys.filter(_.userName === userName.bind).sortBy(_.gpgKeyId).list

View File

@@ -752,7 +752,7 @@ trait IssuesService {
implicit s: Session
): Unit = {
extractIssueId(message).foreach { issueId =>
val content = fromIssue.issueId + ":" + fromIssue.title
val content = s"${fromIssue.issueId}:${fromIssue.title}"
if (getIssue(owner, repository, issueId).isDefined) {
// Not add if refer comment already exist.
if (!getComments(owner, repository, issueId.toInt).exists { x =>

View File

@@ -8,8 +8,6 @@ import gitbucket.core.service.RepositoryService.RepositoryInfo
import gitbucket.core.util.Directory._
import gitbucket.core.util.{JGitUtil, LockUtil}
import gitbucket.core.util.SyntaxSugars._
import gitbucket.core.model.Profile._
import gitbucket.core.model.Profile.profile._
import gitbucket.core.model.Profile.profile.blockingApi._
import org.eclipse.jgit.merge.{MergeStrategy, Merger, RecursiveMerger}
import org.eclipse.jgit.api.Git
@@ -18,7 +16,7 @@ import org.eclipse.jgit.errors.NoMergeBaseException
import org.eclipse.jgit.lib.{CommitBuilder, ObjectId, PersonIdent, Repository}
import org.eclipse.jgit.revwalk.{RevCommit, RevWalk}
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
trait MergeService {
self: AccountService

View File

@@ -17,7 +17,7 @@ import gitbucket.core.model.Account
import gitbucket.core.model.Profile.profile.blockingApi._
import org.slf4j.LoggerFactory
import scala.collection.JavaConverters.{asScalaSet, mapAsJavaMap}
import scala.jdk.CollectionConverters._
/**
* Service class for the OpenID Connect authentication.
@@ -101,7 +101,7 @@ trait OpenIDConnectService {
redirectURI: URI
): Option[AuthenticationSuccessResponse] =
try {
AuthenticationResponseParser.parse(redirectURI, mapAsJavaMap(params)) match {
AuthenticationResponseParser.parse(redirectURI, params.asJava) match {
case response: AuthenticationSuccessResponse =>
if (response.getState == state) {
Some(response)
@@ -207,5 +207,5 @@ object OpenIDConnectService {
"RSA" -> Family.RSA,
"ECDSA" -> Family.EC,
"EdDSA" -> Family.ED
).toMap.map { case (name, family) => (name, asScalaSet(family).toSet) }
).toMap.map { case (name, family) => (name, family.asScala.toSet) }
}

View File

@@ -19,7 +19,7 @@ import gitbucket.core.view.helpers
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.lib.ObjectId
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
trait PullRequestService {
self: IssuesService
@@ -544,7 +544,7 @@ object PullRequestService {
lazy val commitStateSummary: (CommitState, String) = {
val stateMap = statuses.groupBy(_.state)
val state = CommitState.combine(stateMap.keySet)
val summary = stateMap.map { case (keyState, states) => states.size + " " + keyState.name }.mkString(", ")
val summary = stateMap.map { case (keyState, states) => s"${states.size} ${keyState.name}" }.mkString(", ")
state -> summary
}
lazy val statusesAndRequired: List[(CommitStatus, Boolean)] = statuses.map { s =>

View File

@@ -55,6 +55,7 @@ trait WebHookService {
.map { case (w, t) => w -> t.event }
.list
.groupBy(_._1)
.view
.mapValues(_.map(_._2).toSet)
.toList
.sortBy(_._1.url)
@@ -87,6 +88,7 @@ trait WebHookService {
.map { case (w, t) => w -> t.event }
.list
.groupBy(_._1)
.view
.mapValues(_.map(_._2).toSet)
.headOption
@@ -136,6 +138,7 @@ trait WebHookService {
.map { case (w, t) => w -> t.event }
.list
.groupBy(_._1)
.view
.mapValues(_.map(_._2).toSet)
.toList
.sortBy(_._1.url)
@@ -164,6 +167,7 @@ trait WebHookService {
.map { case (w, t) => w -> t.event }
.list
.groupBy(_._1)
.view
.mapValues(_.map(_._2).toSet)
.headOption
@@ -396,7 +400,7 @@ trait WebHookPullRequestService extends WebHookService {
if wht.event === WebHook.PullRequest.asInstanceOf[WebHook.Event].bind && wht.byRepositoryWebHook(wh)
} yield {
((is, iu, pr, bu, ru), wh)
}).list.groupBy(_._1).mapValues(_.map(_._2))
}).list.groupBy(_._1).map { case (k, v) => (k, v.map(_._2)) }
def callPullRequestWebHookByRequestBranch(
action: String,

View File

@@ -14,7 +14,8 @@ import org.eclipse.jgit.diff.{DiffEntry, DiffFormatter}
import java.io.ByteArrayInputStream
import org.eclipse.jgit.patch._
import org.eclipse.jgit.api.errors.PatchFormatException
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
object WikiService {

View File

@@ -8,6 +8,9 @@ import gitbucket.core.service.SystemSettingsService.SystemSettings
import gitbucket.core.service.{AccessTokenService, AccountService, SystemSettingsService}
import gitbucket.core.util.{AuthUtil, Keys}
import gitbucket.core.model.Profile.profile.blockingApi._
// Imported names have higher precedence than names, defined in other files.
// If Database is not bound by explicit import, then "Database" refers to the Database introduced by the wildcard import above.
import gitbucket.core.servlet.Database
class ApiAuthenticationFilter extends Filter with AccessTokenService with AccountService with SystemSettingsService {

View File

@@ -4,12 +4,16 @@ import javax.servlet._
import javax.servlet.http._
import gitbucket.core.model.Account
import gitbucket.core.model.Profile.profile.blockingApi._
import gitbucket.core.plugin.{GitRepositoryFilter, GitRepositoryRouting, PluginRegistry}
import gitbucket.core.service.SystemSettingsService.SystemSettings
import gitbucket.core.service.{AccessTokenService, AccountService, RepositoryService, SystemSettingsService}
import gitbucket.core.util.Implicits._
import gitbucket.core.util.{AuthUtil, Implicits, Keys}
import gitbucket.core.util.{AuthUtil, Keys}
import gitbucket.core.model.Profile.profile.blockingApi._
// Imported names have higher precedence than names, defined in other files.
// If Database is not bound by explicit import, then "Database" refers to the Database introduced by the wildcard import above.
import gitbucket.core.servlet.Database
import org.slf4j.LoggerFactory
/**

View File

@@ -6,7 +6,6 @@ import java.util.Date
import gitbucket.core.api
import gitbucket.core.model.WebHook
import gitbucket.core.model.Profile.profile.blockingApi._
import gitbucket.core.plugin.{GitRepositoryRouting, PluginRegistry}
import gitbucket.core.service.IssuesService.IssueSearchCondition
import gitbucket.core.service.WebHookService._
@@ -14,6 +13,11 @@ import gitbucket.core.service._
import gitbucket.core.util.SyntaxSugars._
import gitbucket.core.util.Implicits._
import gitbucket.core.util._
import gitbucket.core.model.Profile.profile.blockingApi._
// Imported names have higher precedence than names, defined in other files.
// If Database is not bound by explicit import, then "Database" refers to the Database introduced by the wildcard import above.
import gitbucket.core.servlet.Database
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.http.server.GitServlet
import org.eclipse.jgit.lib._
@@ -108,7 +112,7 @@ class GitRepositoryServlet extends GitServlet with SystemSettingsService {
GitLfs.Action(
href = baseUrl + "/git-lfs/" + owner + "/" + repository + "/" + requestObject.oid,
header =
Map("Authorization" -> StringUtil.encodeBlowfish(timeout + " " + requestObject.oid)),
Map("Authorization" -> StringUtil.encodeBlowfish(s"$timeout ${requestObject.oid}")),
expires_at = new Date(timeout)
)
)
@@ -129,7 +133,7 @@ class GitRepositoryServlet extends GitServlet with SystemSettingsService {
GitLfs.Action(
href = baseUrl + "/git-lfs/" + owner + "/" + repository + "/" + requestObject.oid,
header =
Map("Authorization" -> StringUtil.encodeBlowfish(timeout + " " + requestObject.oid)),
Map("Authorization" -> StringUtil.encodeBlowfish(s"$timeout ${requestObject.oid}")),
expires_at = new Date(timeout)
)
)
@@ -216,7 +220,7 @@ class GitBucketReceivePackFactory extends ReceivePackFactory[HttpServletRequest]
}
}
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
class CommitLogHook(owner: String, repository: String, pusher: String, baseUrl: String, sshUrl: Option[String])
extends PostReceiveHook

View File

@@ -12,6 +12,10 @@ import gitbucket.core.util.Directory._
import gitbucket.core.util.SyntaxSugars._
import gitbucket.core.util.JDBCUtil._
import gitbucket.core.model.Profile.profile.blockingApi._
// Imported names have higher precedence than names, defined in other files.
// If Database is not bound by explicit import, then "Database" refers to the Database introduced by the wildcard import above.
import gitbucket.core.servlet.Database
import io.github.gitbucket.solidbase.Solidbase
import io.github.gitbucket.solidbase.manager.JDBCVersionManager
import javax.servlet.{ServletContextEvent, ServletContextListener}
@@ -21,7 +25,7 @@ import org.slf4j.LoggerFactory
import akka.actor.{Actor, ActorSystem, Props}
import com.typesafe.akka.extension.quartz.QuartzSchedulerExtension
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
/**
* Initialize GitBucket system.

View File

@@ -36,7 +36,7 @@ object FileUtil {
def isText(content: Array[Byte]): Boolean = !content.contains(0)
def generateFileId: String = System.currentTimeMillis + Random.alphanumeric.take(10).mkString
def generateFileId: String = s"${System.currentTimeMillis}${Random.alphanumeric.take(10).mkString}"
def getExtension(name: String): String =
name.lastIndexOf('.') match {
@@ -56,7 +56,7 @@ object FileUtil {
}
def getLfsFilePath(owner: String, repository: String, oid: String): String =
Directory.getLfsDir(owner, repository) + "/" + checkFilename(oid)
s"${Directory.getLfsDir(owner, repository)}/${checkFilename(oid)}"
def readableSize(size: Long): String = FileUtils.byteCountToDisplaySize(size)

View File

@@ -1,7 +1,8 @@
package gitbucket.core.util
import java.io.ByteArrayInputStream
import collection.JavaConverters._
import scala.jdk.CollectionConverters._
import gitbucket.core.model.Profile._
import gitbucket.core.model.Profile.profile.blockingApi._
import org.bouncycastle.bcpg.ArmoredInputStream

View File

@@ -218,7 +218,7 @@ object JDBCUtil {
ordered ++ orphans
}
def tsort[A](edges: Traversable[(A, A)]): Iterable[A] = {
def tsort[A](edges: Iterable[(A, A)]): Iterable[A] = {
@tailrec
def tsort(toPreds: Map[A, Set[A]], done: Iterable[A]): Iterable[A] = {
val (noPreds, hasPreds) = toPreds.partition { _._2.isEmpty }
@@ -226,7 +226,7 @@ object JDBCUtil {
if (hasPreds.isEmpty) done else sys.error(hasPreds.toString)
} else {
val found = noPreds.map { _._1 }
tsort(hasPreds.mapValues { _ -- found }, done ++ found)
tsort(hasPreds.map { case (k, v) => (k, v -- found) }, done ++ found)
}
}

View File

@@ -9,7 +9,7 @@ import StringUtil._
import SyntaxSugars._
import scala.annotation.tailrec
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
import org.eclipse.jgit.lib._
import org.eclipse.jgit.revwalk._
import org.eclipse.jgit.revwalk.filter._
@@ -20,7 +20,6 @@ import org.eclipse.jgit.errors.{ConfigInvalidException, IncorrectObjectTypeExcep
import org.eclipse.jgit.transport.RefSpec
import java.util.Date
import java.util.concurrent.TimeUnit
import java.util.function.Consumer
import org.cache2k.Cache2kBuilder
import org.eclipse.jgit.api.errors._
@@ -684,7 +683,7 @@ object JGitUtil {
df.setRepository(git.getRepository)
val toCommit = revWalk.parseCommit(git.getRepository.resolve(to))
from match {
(from match {
case None => {
toCommit.getParentCount match {
case 0 =>
@@ -700,7 +699,7 @@ object JGitUtil {
val fromCommit = revWalk.parseCommit(git.getRepository.resolve(from))
df.scan(fromCommit.getTree, toCommit.getTree).asScala
}
}
}).toSeq
}
}
@@ -908,10 +907,10 @@ object JGitUtil {
}
Right("Tag added.")
} catch {
case e: GitAPIException => Left("Sorry, some Git operation error occurs.")
case e: ConcurrentRefUpdateException => Left("Sorry some error occurs.")
case e: ConcurrentRefUpdateException => Left("Sorry, some error occurs.")
case e: InvalidTagNameException => Left("Sorry, that name is invalid.")
case e: NoHeadException => Left("Sorry, this repo doesn't have HEAD reference")
case e: GitAPIException => Left("Sorry, some Git operation error occurs.")
}
}
@@ -1247,7 +1246,7 @@ object JGitUtil {
} finally {
walk.dispose()
}
}
}.toSeq
}
def getBlame(git: Git, id: String, path: String): Iterable[BlameInfo] = {
@@ -1277,7 +1276,7 @@ object JGitUtil {
}
idLine :+= (c.name, i)
}
val limeMap = idLine.groupBy(_._1).mapValues(_.map(_._2).toSet)
val limeMap = idLine.groupBy(_._1).view.mapValues(_.map(_._2).toSet)
blameMap.values.map { b =>
b.copy(lines = limeMap(b.id))
}

View File

@@ -22,7 +22,7 @@
<script>
$(function(){
$('#submit-@labelId').click(function(e){
$.post('@helpers.url(repository)/issues/labels/@{if(labelId == "new") "new" else labelId + "/edit"}', {
$.post('@helpers.url(repository)/issues/labels/@{if(labelId == "new") "new" else s"$labelId/edit"}', {
'labelName' : $('#labelName-@labelId').val(),
'labelColor': $('#labelColor-@labelId').val()
}, function(data, status){

View File

@@ -23,7 +23,7 @@
<script>
$(function(){
$('#submit-@priorityId').click(function(e){
$.post('@helpers.url(repository)/issues/priorities/@{if(priorityId == "new") "new" else priorityId + "/edit"}', {
$.post('@helpers.url(repository)/issues/priorities/@{if(priorityId == "new") "new" else s"$priorityId/edit"}', {
'priorityName' : $('#priorityName-@priorityId').val(),
'description' : $('#description-@priorityId').val(),
'priorityColor': $('#priorityColor-@priorityId').val()

View File

@@ -7,8 +7,6 @@ import io.github.gitbucket.solidbase.Solidbase
import liquibase.database.core.H2Database
import liquibase.database.jvm.JdbcConnection
import gitbucket.core.model._
import gitbucket.core.model.Profile._
import gitbucket.core.model.Profile.profile._
import gitbucket.core.model.Profile.profile.blockingApi._
import org.apache.commons.io.FileUtils
import java.sql.DriverManager
@@ -17,7 +15,7 @@ import java.io.File
import gitbucket.core.controller.Context
import gitbucket.core.service.SystemSettingsService.{Ssh, SystemSettings}
import javax.servlet.http.{HttpServletRequest, HttpSession}
import org.scalatest.mockito.MockitoSugar
import org.scalatestplus.mockito.MockitoSugar
import org.mockito.Mockito._
import scala.util.Random

View File

@@ -29,7 +29,7 @@ class WebHookServiceSpec extends FunSuite with ServiceSpecBase {
assert(service.getPullRequestsByRequestForWebhook("user1", "repo1", "master1") == Map.empty)
val r = service.getPullRequestsByRequestForWebhook("user2", "repo2", "master2").mapValues(_.map(_.url).toSet)
val r = service.getPullRequestsByRequestForWebhook("user2", "repo2", "master2").view.mapValues(_.map(_.url).toSet)
assert(r.size == 3)
assert(r((issue1, issueUser, pullreq1, user1, user2)) == Set("webhook1-1", "webhook1-2"))
@@ -39,7 +39,8 @@ class WebHookServiceSpec extends FunSuite with ServiceSpecBase {
// when closed, it not founds.
service.updateClosed("user1", "repo1", issue1.issueId, true)
val r2 = service.getPullRequestsByRequestForWebhook("user2", "repo2", "master2").mapValues(_.map(_.url).toSet)
val r2 =
service.getPullRequestsByRequestForWebhook("user2", "repo2", "master2").view.mapValues(_.map(_.url).toSet)
assert(r2.size == 2)
assert(r2((issue3, issueUser, pullreq3, user3, user2)) == Set("webhook3-1", "webhook3-2"))
assert(r2((issue32, issueUser, pullreq32, user3, user2)) == Set("webhook3-1", "webhook3-2"))

View File

@@ -1,15 +1,12 @@
package gitbucket.core.util
import GitSpecUtil._
import gitbucket.core.util.SyntaxSugars.using
import org.apache.commons.io.IOUtils
import org.eclipse.jgit.diff.DiffEntry
import org.eclipse.jgit.diff.DiffEntry.ChangeType
import org.eclipse.jgit.lib.Constants
import org.eclipse.jgit.treewalk.TreeWalk
import org.scalatest.FunSuite
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
class JGitUtilSpec extends FunSuite {

View File

@@ -10,7 +10,7 @@ import gitbucket.core.service.RequestCache
import gitbucket.core.service.SystemSettingsService.{Ssh, SystemSettings}
import org.mockito.Mockito._
import org.scalatest.FunSpec
import org.scalatest.mockito.MockitoSugar
import org.scalatestplus.mockito.MockitoSugar
import play.twirl.api.Html
class AvatarImageProviderSpec extends FunSpec with MockitoSugar {

View File

@@ -3,7 +3,7 @@ package gitbucket.core.view
import gitbucket.core.controller.Context
import gitbucket.core.service.RepositoryService.RepositoryInfo
import org.scalatest.FunSpec
import org.scalatest.mockito.MockitoSugar
import org.scalatestplus.mockito.MockitoSugar
import java.util.Date
import java.util.TimeZone

View File

@@ -3,7 +3,7 @@ package gitbucket.core.view
import gitbucket.core.controller.Context
import gitbucket.core.service.RepositoryService.RepositoryInfo
import org.scalatest.FunSpec
import org.scalatest.mockito.MockitoSugar
import org.scalatestplus.mockito.MockitoSugar
import org.mockito.Mockito._
class MarkdownSpec extends FunSpec with MockitoSugar {