Welcome to mirror list, hosted at ThFree Co, Russian Federation.

CommitStatusSetter.scala « server « savage « getbootstrap « com « scala « main « src - github.com/twbs/savage.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6b98f0ebff7346e1ae4998d686b353d0191de345 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.getbootstrap.savage.server

import scala.util.{Try,Success,Failure}
import org.eclipse.egit.github.core.{CommitStatus=>RawCommitStatus}
import org.eclipse.egit.github.core.service.CommitService
import com.getbootstrap.savage.github.commit_status.StatusForCommit
import com.getbootstrap.savage.github.GitHubActorWithLogging

class CommitStatusSetter extends GitHubActorWithLogging {
  def tryToSetCommitStatus(commitStatus: StatusForCommit): Try[RawCommitStatus] = {
    val commitService = new CommitService(gitHubClient)
    val commitSha = commitStatus.commit.sha
    val status = commitStatus.status.asRawStatus
    Try { commitService.createStatus(settings.MainRepoId, commitSha, status) }
  }

  override def receive = {
    case commitStatus@StatusForCommit(commit, status) => {
      tryToSetCommitStatus(commitStatus) match {
        case Success(createdCommitStatus) => {
          log.info(s"Successfully set/created commit status ${createdCommitStatus.getUrl} with state ${status.name} for ${commit}")
        }
        case Failure(exc) => log.error(exc, s"Error setting ${commitStatus}")
      }
    }
  }
}