@ -189,36 +189,6 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
return nil
return nil
}
}
}
}
if baseBranch , err = pr . BaseRepo . GetBranch ( pr . BaseBranch ) ; err != nil {
log . Error ( "pr.BaseRepo.GetBranch[%d]: %v" , pr . BaseBranch , err )
return nil
}
if baseCommit , err = baseBranch . GetCommit ( ) ; err != nil {
log . Error ( "baseBranch.GetCommit[%d]: %v" , pr . ID , err )
return nil
}
if headBranch , err = pr . HeadRepo . GetBranch ( pr . HeadBranch ) ; err != nil {
log . Error ( "pr.HeadRepo.GetBranch[%d]: %v" , pr . HeadBranch , err )
return nil
}
if headCommit , err = headBranch . GetCommit ( ) ; err != nil {
log . Error ( "headBranch.GetCommit[%d]: %v" , pr . ID , err )
return nil
}
apiBaseBranchInfo := & api . PRBranchInfo {
Name : pr . BaseBranch ,
Ref : pr . BaseBranch ,
Sha : baseCommit . ID . String ( ) ,
RepoID : pr . BaseRepoID ,
Repository : pr . BaseRepo . innerAPIFormat ( e , AccessModeNone , false ) ,
}
apiHeadBranchInfo := & api . PRBranchInfo {
Name : pr . HeadBranch ,
Ref : pr . HeadBranch ,
Sha : headCommit . ID . String ( ) ,
RepoID : pr . HeadRepoID ,
Repository : pr . HeadRepo . innerAPIFormat ( e , AccessModeNone , false ) ,
}
if err = pr . Issue . loadRepo ( e ) ; err != nil {
if err = pr . Issue . loadRepo ( e ) ; err != nil {
log . Error ( "pr.Issue.loadRepo[%d]: %v" , pr . ID , err )
log . Error ( "pr.Issue.loadRepo[%d]: %v" , pr . ID , err )
@ -227,6 +197,7 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
apiPullRequest := & api . PullRequest {
apiPullRequest := & api . PullRequest {
ID : pr . ID ,
ID : pr . ID ,
URL : pr . Issue . HTMLURL ( ) ,
Index : pr . Index ,
Index : pr . Index ,
Poster : apiIssue . Poster ,
Poster : apiIssue . Poster ,
Title : apiIssue . Title ,
Title : apiIssue . Title ,
@ -241,13 +212,68 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
DiffURL : pr . Issue . DiffURL ( ) ,
DiffURL : pr . Issue . DiffURL ( ) ,
PatchURL : pr . Issue . PatchURL ( ) ,
PatchURL : pr . Issue . PatchURL ( ) ,
HasMerged : pr . HasMerged ,
HasMerged : pr . HasMerged ,
Base : apiBaseBranchInfo ,
Head : apiHeadBranchInfo ,
MergeBase : pr . MergeBase ,
MergeBase : pr . MergeBase ,
Deadline : apiIssue . Deadline ,
Deadline : apiIssue . Deadline ,
Created : pr . Issue . CreatedUnix . AsTimePtr ( ) ,
Created : pr . Issue . CreatedUnix . AsTimePtr ( ) ,
Updated : pr . Issue . UpdatedUnix . AsTimePtr ( ) ,
Updated : pr . Issue . UpdatedUnix . AsTimePtr ( ) ,
}
}
baseBranch , err = pr . BaseRepo . GetBranch ( pr . BaseBranch )
if err != nil {
if git . IsErrBranchNotExist ( err ) {
apiPullRequest . Base = nil
} else {
log . Error ( "GetBranch[%s]: %v" , pr . BaseBranch , err )
return nil
}
} else {
apiBaseBranchInfo := & api . PRBranchInfo {
Name : pr . BaseBranch ,
Ref : pr . BaseBranch ,
RepoID : pr . BaseRepoID ,
Repository : pr . BaseRepo . innerAPIFormat ( e , AccessModeNone , false ) ,
}
baseCommit , err = baseBranch . GetCommit ( )
if err != nil {
if git . IsErrNotExist ( err ) {
apiBaseBranchInfo . Sha = ""
} else {
log . Error ( "GetCommit[%s]: %v" , baseBranch . Name , err )
return nil
}
} else {
apiBaseBranchInfo . Sha = baseCommit . ID . String ( )
}
apiPullRequest . Base = apiBaseBranchInfo
}
headBranch , err = pr . HeadRepo . GetBranch ( pr . HeadBranch )
if err != nil {
if git . IsErrBranchNotExist ( err ) {
apiPullRequest . Head = nil
} else {
log . Error ( "GetBranch[%s]: %v" , pr . HeadBranch , err )
return nil
}
} else {
apiHeadBranchInfo := & api . PRBranchInfo {
Name : pr . HeadBranch ,
Ref : pr . HeadBranch ,
RepoID : pr . HeadRepoID ,
Repository : pr . HeadRepo . innerAPIFormat ( e , AccessModeNone , false ) ,
}
headCommit , err = headBranch . GetCommit ( )
if err != nil {
if git . IsErrNotExist ( err ) {
apiHeadBranchInfo . Sha = ""
} else {
log . Error ( "GetCommit[%s]: %v" , headBranch . Name , err )
return nil
}
} else {
apiHeadBranchInfo . Sha = headCommit . ID . String ( )
}
apiPullRequest . Head = apiHeadBranchInfo
}
if pr . Status != PullRequestStatusChecking {
if pr . Status != PullRequestStatusChecking {
mergeable := pr . Status != PullRequestStatusConflict && ! pr . IsWorkInProgress ( )
mergeable := pr . Status != PullRequestStatusConflict && ! pr . IsWorkInProgress ( )