app/services/VCSAPI.scala (13 lines of code) (raw):
package services
import akka.util.ByteString
import models.gitlab.{Branch, GitlabProject, JobResponse, MergeRequest}
import models.gitlab.MergeRequestState.MergeRequestState
import io.circe.Error
import scala.concurrent.Future
/**
* This trait defines the interface for a version-control system connector.
*/
trait VCSAPI {
def listProjects:Future[Either[Error, Seq[GitlabProject]]]
def jobsForProject(projectId:String):Future[Either[Error, Seq[JobResponse]]]
def artifactsZipForBranch(projectId:String, branchName:String, jobName:String):Future[Option[ByteString]]
def branchesForProject(projectId:String):Future[Either[Error, Seq[Branch]]]
def getOpenMergeRequests(projectId:String, forStatus:Option[MergeRequestState]):Future[Either[Error, Seq[MergeRequest]]]
}