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 09:31:44 +0300
committerChris Rebert <github@rebertia.com>2015-07-28 09:31:44 +0300
commit9d3a8856acaeabef8f6a893adb9ce88f2cf1e8d0 (patch)
tree102451dfd4319db856b9a0a3b08ea3bb0caa08d4
parente06448e7afaf65aba07f9b0ccdb0f705d7aa9a43 (diff)
parent762b266ee89958a675d0ae66c23a415b52983b19 (diff)
Merge pull request #11 from twbs/rate-limit-logging
Add GitHub rate limit logging
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/Main.scala9
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala13
2 files changed, 20 insertions, 2 deletions
diff --git a/src/main/scala/com/getbootstrap/no_carrier/Main.scala b/src/main/scala/com/getbootstrap/no_carrier/Main.scala
index 4f6843e..4da362c 100644
--- a/src/main/scala/com/getbootstrap/no_carrier/Main.scala
+++ b/src/main/scala/com/getbootstrap/no_carrier/Main.scala
@@ -45,10 +45,15 @@ object Main extends App with StrictLogging {
def main(args: Arguments) {
logger.info("Started session.")
- val repo = args.github.repos.get(args.repoId)
+ val github = args.github
+ val rateLimit = github.rateLimit
+ val repo = github.repos.get(args.repoId)
val waitingOnOp = repo.issues.openWithLabel(args.label)
- val opNeverDelivered = waitingOnOp.filter{ issue => new FancyIssue(issue = issue, label = args.label, timeout = args.timeout).opNeverDelivered }
+ val opNeverDelivered = waitingOnOp.filter{ issue => {
+ logger.info(s"GitHub rate limit status: ${rateLimit.summary}")
+ new FancyIssue(issue = issue, label = args.label, timeout = args.timeout).opNeverDelivered
+ } }
val totalClosed = opNeverDelivered.map { issue =>
if (closeOut(issue, args.timeout)) 1 else 0
}.sum
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 60d4c5a..81c14f2 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
@@ -8,6 +8,7 @@ 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.Limit.{Smart=>SmartLimit}
import com.jcabi.github.Repos.RepoCreate
import com.getbootstrap.no_carrier.util.GoogleToScalaOptional
@@ -69,4 +70,16 @@ package object util {
labels.add(singleton)
}
}
+
+ implicit class RichGithub(github: Github) {
+ def rateLimit = new SmartLimit(github.limits.get(Limits.CORE))
+ }
+
+ implicit class RichSmartLimit(limit: SmartLimit) {
+ private def resetTimestamp: String = {
+ import java.time.format.DateTimeFormatter.ISO_INSTANT
+ ISO_INSTANT.format(limit.reset.toInstant)
+ }
+ def summary: String = s"[${limit.remaining}/${limit.limit}] (resets @ ${resetTimestamp})"
+ }
}