diff --git a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala index 2f913c5..b35f66c 100644 --- a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala +++ b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala @@ -503,24 +503,28 @@ }) ajaxGet("/:owner/:repository/pulls/proposals")(readableUsersOnly { repository => - (for { + val branches = JGitUtil.getBranches( + owner = repository.owner, + name = repository.name, + defaultBranch = repository.repository.defaultBranch, + origin = repository.repository.originUserName.isEmpty + ) + .filter(x => x.mergeInfo.map(_.ahead).getOrElse(0) > 0 && x.mergeInfo.map(_.behind).getOrElse(0) == 0) + .sortBy(br => (br.mergeInfo.isEmpty, br.commitTime)) + .map(_.name) + .reverse + + val targetRepository = (for { parentUserName <- repository.repository.parentUserName parentRepoName <- repository.repository.parentRepositoryName parentRepository <- getRepository(parentUserName, parentRepoName).orElse(Some(repository)) } yield { - val branches = JGitUtil.getBranches( - owner = repository.owner, - name = repository.name, - defaultBranch = repository.repository.defaultBranch, - origin = repository.repository.originUserName.isEmpty - ) - .filter(x => x.mergeInfo.map(_.ahead).getOrElse(0) > 0 && x.mergeInfo.map(_.behind).getOrElse(0) == 0) - .sortBy(br => (br.mergeInfo.isEmpty, br.commitTime)) - .map(_.name) - .reverse + parentRepository + }).getOrElse { + repository + } - html.proposals(branches, parentRepository, repository) - }).getOrElse(NotFound()) + html.proposals(branches, targetRepository, repository) }) /**