@@ -179,14 +179,30 @@ func checkPullInfo(ctx *context.Context) *models.Issue {
179
179
return issue
180
180
}
181
181
182
+ func setMergeTarget (ctx * context.Context , pull * models.PullRequest ) {
183
+ if ctx .Repo .Owner .Name == pull .HeadUserName {
184
+ ctx .Data ["HeadTarget" ] = pull .HeadBranch
185
+ } else if pull .HeadRepo == nil {
186
+ ctx .Data ["HeadTarget" ] = pull .HeadUserName + ":" + pull .HeadBranch
187
+ } else {
188
+ ctx .Data ["HeadTarget" ] = pull .HeadUserName + "/" + pull .HeadRepo .Name + ":" + pull .HeadBranch
189
+ }
190
+ ctx .Data ["BaseTarget" ] = pull .BaseBranch
191
+ }
192
+
182
193
// PrepareMergedViewPullInfo show meta information for a merged pull request view page
183
194
func PrepareMergedViewPullInfo (ctx * context.Context , issue * models.Issue ) {
184
195
pull := issue .PullRequest
185
- ctx .Data ["HasMerged" ] = true
186
- ctx .Data ["HeadTarget" ] = issue .PullRequest .HeadUserName + "/" + pull .HeadBranch
187
- ctx .Data ["BaseTarget" ] = ctx .Repo .Owner .Name + "/" + pull .BaseBranch
188
196
189
197
var err error
198
+ if err = pull .GetHeadRepo (); err != nil {
199
+ ctx .Handle (500 , "GetHeadRepo" , err )
200
+ return
201
+ }
202
+
203
+ setMergeTarget (ctx , pull )
204
+ ctx .Data ["HasMerged" ] = true
205
+
190
206
ctx .Data ["NumCommits" ], err = ctx .Repo .GitRepo .CommitsCountBetween (pull .MergeBase , pull .MergedCommitID )
191
207
if err != nil {
192
208
ctx .Handle (500 , "Repo.GitRepo.CommitsCountBetween" , err )
@@ -204,19 +220,15 @@ func PrepareViewPullInfo(ctx *context.Context, issue *models.Issue) *git.PullReq
204
220
repo := ctx .Repo .Repository
205
221
pull := issue .PullRequest
206
222
207
- ctx .Data ["HeadTarget" ] = pull .HeadUserName + "/" + pull .HeadBranch
208
- ctx .Data ["BaseTarget" ] = ctx .Repo .Owner .Name + "/" + pull .BaseBranch
209
-
210
- var (
211
- headGitRepo * git.Repository
212
- err error
213
- )
214
-
223
+ var err error
215
224
if err = pull .GetHeadRepo (); err != nil {
216
225
ctx .Handle (500 , "GetHeadRepo" , err )
217
226
return nil
218
227
}
219
228
229
+ setMergeTarget (ctx , pull )
230
+
231
+ var headGitRepo * git.Repository
220
232
if pull .HeadRepo != nil {
221
233
headGitRepo , err = git .OpenRepository (pull .HeadRepo .RepoPath ())
222
234
if err != nil {
0 commit comments