Show pull request proposals for the current repository

if the repository doesn't have a parent repository.
This commit is contained in:
Naoki Takezoe
2017-12-12 00:39:30 +09:00
parent 3a540aa660
commit 70f40846bb

View File

@@ -503,24 +503,28 @@ trait PullRequestsControllerBase extends ControllerBase {
}) })
ajaxGet("/:owner/:repository/pulls/proposals")(readableUsersOnly { repository => 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 parentUserName <- repository.repository.parentUserName
parentRepoName <- repository.repository.parentRepositoryName parentRepoName <- repository.repository.parentRepositoryName
parentRepository <- getRepository(parentUserName, parentRepoName).orElse(Some(repository)) parentRepository <- getRepository(parentUserName, parentRepoName).orElse(Some(repository))
} yield { } yield {
val branches = JGitUtil.getBranches( parentRepository
owner = repository.owner, }).getOrElse {
name = repository.name, repository
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
html.proposals(branches, parentRepository, repository) html.proposals(branches, targetRepository, repository)
}).getOrElse(NotFound())
}) })
/** /**