diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala index 8219b9c..dc4ee48 100644 --- a/src/main/scala/app/PullRequestsController.scala +++ b/src/main/scala/app/PullRequestsController.scala @@ -186,8 +186,11 @@ } case _ => { using(Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name))){ git => - val defaultBranch = JGitUtil.getDefaultBranch(git, forkedRepository).get._2 - redirect(s"${context.path}/${forkedRepository.owner}/${forkedRepository.name}/compare/${defaultBranch}...${defaultBranch}") + JGitUtil.getDefaultBranch(git, forkedRepository).map { case (_, defaultBranch) => + redirect(s"${context.path}/${forkedRepository.owner}/${forkedRepository.name}/compare/${defaultBranch}...${defaultBranch}") + } getOrElse { + redirect(s"${context.path}/${forkedRepository.owner}/${forkedRepository.name}") + } } } } diff --git a/src/main/scala/util/JGitUtil.scala b/src/main/scala/util/JGitUtil.scala index 3f1a39e..712cb5d 100644 --- a/src/main/scala/util/JGitUtil.scala +++ b/src/main/scala/util/JGitUtil.scala @@ -453,10 +453,11 @@ def getDefaultBranch(git: Git, repository: RepositoryService.RepositoryInfo, revstr: String = ""): Option[(ObjectId, String)] = { Seq( - if(revstr.isEmpty) repository.repository.defaultBranch else revstr, - repository.branchList.head - ).map { rev => - (git.getRepository.resolve(rev), rev) + Some(if(revstr.isEmpty) repository.repository.defaultBranch else revstr), + repository.branchList.headOption + ).flatMap { + case Some(rev) => Some((git.getRepository.resolve(rev), rev)) + case None => None }.find(_._1 != null) }