in app/controllers/ProjectsController.scala [153:179]
def findNewBuildInfo(projectId:String, branchName:String, jobName:String) = {
logger.debug(s"branchName is ${branchName}")
logger.debug(s"jobName is $jobName")
val maybeAwsAccount = config.getOptional[String]("aws.accountId")
val maybeAwsRegion = config.getOptional[String]("aws.region")
withVCSAPI(projectId) { vcs =>
val maybeZipContent = for {
gitRef <- Future.fromTry(Try {
URLDecoder.decode(branchName, StandardCharsets.UTF_8)
})
zipContent <- vcs.artifactsZipForBranch(projectId, gitRef, jobName)
} yield zipContent
maybeZipContent.flatMap({
case Some(zipContent)=>
for {
zipReader <- Future(new ZipReader(zipContent.toArray))
maybeBuildInfo <- Future.fromTry(zipReader.locateBuildInfo(maybeAwsAccount, maybeAwsRegion))
} yield maybeBuildInfo
case None=>
Future(None)
})
}
}