[API] get pull, return head branch sha, even if deleted (#14931)
* API: return head branch sha, even if deleted * relax if ref not resolvable
This commit is contained in:
		
							parent
							
								
									14d8cb7819
								
							
						
					
					
						commit
						177da717a7
					
				|  | @ -134,6 +134,24 @@ func ToAPIPullRequest(pr *models.PullRequest) *api.PullRequest { | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if len(apiPullRequest.Head.Sha) == 0 && len(apiPullRequest.Head.Ref) != 0 { | ||||||
|  | 		baseGitRepo, err := git.OpenRepository(pr.BaseRepo.RepoPath()) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Error("OpenRepository[%s]: %v", pr.BaseRepo.RepoPath(), err) | ||||||
|  | 			return nil | ||||||
|  | 		} | ||||||
|  | 		defer baseGitRepo.Close() | ||||||
|  | 		refs, err := baseGitRepo.GetRefsFiltered(apiPullRequest.Head.Ref) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Error("GetRefsFiltered[%s]: %v", apiPullRequest.Head.Ref, err) | ||||||
|  | 			return nil | ||||||
|  | 		} else if len(refs) == 0 { | ||||||
|  | 			log.Error("unable to resolve PR head ref") | ||||||
|  | 		} else { | ||||||
|  | 			apiPullRequest.Head.Sha = refs[0].Object.String() | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	if pr.Status != models.PullRequestStatusChecking { | 	if pr.Status != models.PullRequestStatusChecking { | ||||||
| 		mergeable := !(pr.Status == models.PullRequestStatusConflict || pr.Status == models.PullRequestStatusError) && !pr.IsWorkInProgress() | 		mergeable := !(pr.Status == models.PullRequestStatusConflict || pr.Status == models.PullRequestStatusError) && !pr.IsWorkInProgress() | ||||||
| 		apiPullRequest.Mergeable = mergeable | 		apiPullRequest.Mergeable = mergeable | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue