app/lib/labels/CheckpointTestStatus.scala (18 lines of code) (raw):
package lib.labels
import lib.Config.Checkpoint
sealed trait CheckpointTestStatus extends PullRequestLabel {
def labelFor(checkpointName: String) = {
name + "-in-" + checkpointName
}
}
object CheckpointTestStatus {
val all = Set[CheckpointTestStatus](Pass, Fail)
def fromLabels(labels: Set[String], checkpoint: Checkpoint): Option[CheckpointTestStatus] =
CheckpointTestStatus.all.find(s => labels(s.labelFor(checkpoint.name)))
}
case object Pass extends CheckpointTestStatus {
override val defaultColour: String = "bfe5bf"
}
case object Fail extends CheckpointTestStatus {
override val defaultColour: String = "e11d21"
}