Added support for mail notifications and WIP JIRA export.

This commit is contained in:
Šesták Vít
2016-02-12 19:50:40 +01:00
parent f4fa0ee948
commit 2fb2c3fd72
32 changed files with 728 additions and 51 deletions

View File

@@ -0,0 +1,7 @@
package com.ysoft.odc
import play.api.mvc.Call
class Absolutizer(host: String, secure: Boolean){
def absolutize(call: Call) = call.absoluteURL(secure, host)
}

View File

@@ -0,0 +1,15 @@
package com.ysoft.odc
import play.api.libs.ws.{WSAuthScheme, WSRequest}
trait AtlassianAuthentication{
def addAuth(request: WSRequest): WSRequest
}
class SessionIdAtlassianAuthentication(sessionId: String) extends AtlassianAuthentication{
override def addAuth(request: WSRequest): WSRequest = request.withHeaders("Cookie" -> s"JSESSIONID=${sessionId.takeWhile(_.isLetterOrDigit)}")
}
class CredentialsAtlassianAuthentication(user: String, password: String) extends AtlassianAuthentication{
override def addAuth(request: WSRequest): WSRequest = request.withQueryString("os_authType" -> "basic").withAuth(user, password, WSAuthScheme.BASIC)
}

View File

@@ -61,19 +61,8 @@ final case class ArtifactDirectory(name: String, items: Map[String, ArtifactItem
}
final case class FlatArtifactDirectory(name: String, items: Seq[(String, String)]) extends FlatArtifactItem{}
trait BambooAuthentication{
def addAuth(request: WSRequest): WSRequest
}
class SessionIdBambooAuthentication(sessionId: String) extends BambooAuthentication{
override def addAuth(request: WSRequest): WSRequest = request.withHeaders("Cookie" -> s"JSESSIONID=${sessionId.takeWhile(_.isLetterOrDigit)}")
}
class CredentialsBambooAuthentication(user: String, password: String) extends BambooAuthentication{
override def addAuth(request: WSRequest): WSRequest = request.withQueryString("os_authType" -> "basic").withAuth(user, password, WSAuthScheme.BASIC)
}
final class BambooDownloader @Inject() (@Named("bamboo-server-url") val server: String, auth: BambooAuthentication)(implicit executionContext: ExecutionContext, wSClient: WSClient) extends Downloader {
final class BambooDownloader @Inject()(@Named("bamboo-server-url") val server: String, @Named("bamboo-authentication") auth: AtlassianAuthentication)(implicit executionContext: ExecutionContext, wSClient: WSClient) extends Downloader {
private object ArtifactKeys{
val BuildLog = "Build log"

View File

@@ -0,0 +1,8 @@
package com.ysoft.odc
class SetDiff[T](val oldSet: Set[T], val newSet: Set[T]) {
lazy val added = newSet -- oldSet
lazy val removed = oldSet -- newSet
lazy val isEmpty = newSet == oldSet
def nonEmpty = !isEmpty
}