diff options
Diffstat (limited to 'src/main/scala/com/getbootstrap/savage/github')
4 files changed, 20 insertions, 1 deletions
diff --git a/src/main/scala/com/getbootstrap/savage/github/CommitSha.scala b/src/main/scala/com/getbootstrap/savage/github/CommitSha.scala index 75f77f3..e77deb4 100644 --- a/src/main/scala/com/getbootstrap/savage/github/CommitSha.scala +++ b/src/main/scala/com/getbootstrap/savage/github/CommitSha.scala @@ -8,6 +8,7 @@ object CommitSha { case _ => None } } + def unapply(sha: String): Option[CommitSha] = CommitSha(sha) } class CommitSha private(val sha: String) extends AnyVal { diff --git a/src/main/scala/com/getbootstrap/savage/github/GitHubActorWithLogging.scala b/src/main/scala/com/getbootstrap/savage/github/GitHubActorWithLogging.scala index 2dde9de..9b231f3 100644 --- a/src/main/scala/com/getbootstrap/savage/github/GitHubActorWithLogging.scala +++ b/src/main/scala/com/getbootstrap/savage/github/GitHubActorWithLogging.scala @@ -4,7 +4,7 @@ import org.eclipse.egit.github.core.client.GitHubClient import com.getbootstrap.savage.server.{Settings, ActorWithLogging} abstract class GitHubActorWithLogging extends ActorWithLogging { - protected val settings = Settings(context.system) + protected implicit val settings = Settings(context.system) protected val gitHubClient = new GitHubClient() gitHubClient.setUserAgent(settings.UserAgent) gitHubClient.setCredentials(settings.BotUsername, settings.BotPassword) diff --git a/src/main/scala/com/getbootstrap/savage/github/PullRequestNumber.scala b/src/main/scala/com/getbootstrap/savage/github/PullRequestNumber.scala index f7043cb..1ac41b8 100644 --- a/src/main/scala/com/getbootstrap/savage/github/PullRequestNumber.scala +++ b/src/main/scala/com/getbootstrap/savage/github/PullRequestNumber.scala @@ -9,6 +9,7 @@ object PullRequestNumber { None } } + def unapply(number: Int): Option[PullRequestNumber] = PullRequestNumber(number) } class PullRequestNumber private(val number: Int) extends AnyVal { override def toString = s"PullRequestNumber(${number})" diff --git a/src/main/scala/com/getbootstrap/savage/github/SavageBranch.scala b/src/main/scala/com/getbootstrap/savage/github/SavageBranch.scala new file mode 100644 index 0000000..94aa4c3 --- /dev/null +++ b/src/main/scala/com/getbootstrap/savage/github/SavageBranch.scala @@ -0,0 +1,17 @@ +package com.getbootstrap.savage.github + +import com.getbootstrap.savage.server.SettingsImpl +import com.getbootstrap.savage.util.{IntFromStr, PrefixedString} + +object SavageBranch { + def apply(branch: Branch)(implicit settings: SettingsImpl): Option[SavageBranch] = { + branch.name.unprefix(settings.BranchPrefix).map{ _.split("-") } match { + case Some(Array(IntFromStr(PullRequestNumber(num)), CommitSha(sha))) => Some(SavageBranch(num, sha)) + case _ => None + } + } + def unapply(branch: Branch)(implicit settings: SettingsImpl): Option[(PullRequestNumber, CommitSha)] = SavageBranch(branch).map{ savBr => (savBr.prNum, savBr.commitSha) } +} +case class SavageBranch(prNum: PullRequestNumber, commitSha: CommitSha) { + def branch(implicit settings: SettingsImpl): Branch = Branch(s"${settings.BranchPrefix}${prNum.number}-${commitSha.sha}").get +} |