diff options
author | Chris Rebert <github@rebertia.com> | 2015-07-28 06:17:57 +0300 |
---|---|---|
committer | Chris Rebert <github@rebertia.com> | 2015-07-28 06:17:57 +0300 |
commit | eca8628b5d7b558f9f990cda7a32f6568e329953 (patch) | |
tree | daea911b38d9da75ab7ecf2aa186fd39e0cc173b | |
parent | aa8c7e33fcc978fa238443952dcfe50d2f6daa6a (diff) | |
parent | d20339d44479f2c5648590907b3be8fc1a9191ad (diff) |
Merge pull request #9 from twbs/bump-jcabi
Upgrade to jcabi-github v0.24
-rw-r--r-- | build.sbt | 2 | ||||
-rw-r--r-- | src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala | 23 | ||||
-rw-r--r-- | src/main/scala/com/getbootstrap/no_carrier/util/package.scala | 12 |
3 files changed, 20 insertions, 17 deletions
@@ -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 + } + } + } } |