Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/no-carrier.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.sbt2
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala23
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/util/package.scala12
3 files changed, 20 insertions, 17 deletions
diff --git a/build.sbt b/build.sbt
index 2bfd6be..2914ac4 100644
--- a/build.sbt
+++ b/build.sbt
@@ -8,7 +8,7 @@ mainClass := Some("com.getbootstrap.no_carrier.Main")
resolvers ++= Seq("snapshots", "releases").map(Resolver.sonatypeRepo)
-libraryDependencies += "com.jcabi" % "jcabi-github" % "0.23"
+libraryDependencies += "com.jcabi" % "jcabi-github" % "0.24"
libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0"
diff --git a/src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala b/src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala
index af5bb80..60d4c5a 100644
--- a/src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala
+++ b/src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala
@@ -2,13 +2,14 @@ package com.getbootstrap.no_carrier.github
import java.util.EnumMap
import java.time.Instant
-import javax.json.JsonObject
-import scala.util.{Try,Success}
+import scala.util.Try
import scala.collection.JavaConverters._
-import com.jcabi.github.{Event => IssueEvent, Issue, Issues, IssueLabels, Comment, Search, Repo, Repos}
+import com.jcabi.github.{Event => IssueEvent, _}
import com.jcabi.github.Issue.{Smart=>SmartIssue}
import com.jcabi.github.Event.{Smart=>SmartIssueEvent}
import com.jcabi.github.Comment.{Smart=>SmartComment}
+import com.jcabi.github.Repos.RepoCreate
+import com.getbootstrap.no_carrier.util.GoogleToScalaOptional
package object util {
implicit class RichIssues(issues: Issues) {
@@ -27,7 +28,7 @@ package object util {
def commentsIterable: Iterable[Comment] = issue.comments.iterate.asScala
def lastLabelledWithAt(label: String): Option[Instant] = {
- val labellings = issue.smartEvents.filter{ event => event.isLabeled && event.label == Some(label) }
+ val labellings = issue.smartEvents.filter{ event => event.labelOption.exists{ _.name == label } }
labellings.lastOption.map{ _.createdAt.toInstant }
}
}
@@ -47,14 +48,7 @@ package object util {
}
implicit class RichSmartIssueEvent(event: SmartIssueEvent) {
- def isLabeled: Boolean = event.`type` == IssueEvent.LABELED
-
- def label: Option[String] = {
- // FIXME: Use event.label.name once jcabi-github 0.24+ is available
- Try {Option[JsonObject](event.json.getJsonObject("label")).map {_.getString("name")}}.recoverWith {
- case _: ClassCastException => Success(None)
- }.get
- }
+ def labelOption: Option[Label] = event.label.toOption
}
implicit class RichComment(comment: Comment) {
@@ -62,11 +56,8 @@ package object util {
}
implicit class RichRepos(repos: Repos) {
- import javax.json.Json
-
def create(name: String): Repo = {
- val json = Json.createObjectBuilder.add("name", name).build
- repos.create(json)
+ repos.create(new RepoCreate(name, true))
}
}
diff --git a/src/main/scala/com/getbootstrap/no_carrier/util/package.scala b/src/main/scala/com/getbootstrap/no_carrier/util/package.scala
index fcdce67..ef0297d 100644
--- a/src/main/scala/com/getbootstrap/no_carrier/util/package.scala
+++ b/src/main/scala/com/getbootstrap/no_carrier/util/package.scala
@@ -1,6 +1,7 @@
package com.getbootstrap.no_carrier
import java.time.{Clock, Instant, Duration}
+import com.google.common.base.{Optional=>GuavaOptional}
package object util {
val InstantOrdering = implicitly[Ordering[Instant]]
@@ -15,4 +16,15 @@ package object util {
deadline < now
}
}
+
+ implicit class GoogleToScalaOptional[T](option: GuavaOptional[T]) {
+ def toOption: Option[T] = {
+ if (option.isPresent) {
+ Some(option.get())
+ }
+ else {
+ None
+ }
+ }
+ }
}