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:
authorChris Rebert <github@rebertia.com>2015-07-28 06:17:57 +0300
committerChris Rebert <github@rebertia.com>2015-07-28 06:17:57 +0300
commiteca8628b5d7b558f9f990cda7a32f6568e329953 (patch)
treedaea911b38d9da75ab7ecf2aa186fd39e0cc173b
parentaa8c7e33fcc978fa238443952dcfe50d2f6daa6a (diff)
parentd20339d44479f2c5648590907b3be8fc1a9191ad (diff)
Merge pull request #9 from twbs/bump-jcabi
Upgrade to jcabi-github v0.24
-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
+ }
+ }
+ }
}