def findNewBuildInfo()

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)
      })


    }
  }