From 392fe6c943c9fcd70857d1f5bff177bdf7c5f69e Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 19 Jun 2019 00:15:39 +0800 Subject: [PATCH] Fix migration panic when Head.User is not exist (#7226) * fix migration panic when Head.User is not exist * fix test --- modules/migrations/github.go | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/modules/migrations/github.go b/modules/migrations/github.go index 21c1becedfb..6847787acef 100644 --- a/modules/migrations/github.go +++ b/modules/migrations/github.go @@ -416,17 +416,36 @@ func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullReq merged = true } - var headRepoName string - var cloneURL string + var ( + headRepoName string + cloneURL string + headRef string + headSHA string + ) if pr.Head.Repo != nil { - headRepoName = *pr.Head.Repo.Name - cloneURL = *pr.Head.Repo.CloneURL + if pr.Head.Repo.Name != nil { + headRepoName = *pr.Head.Repo.Name + } + if pr.Head.Repo.CloneURL != nil { + cloneURL = *pr.Head.Repo.CloneURL + } + } + if pr.Head.Ref != nil { + headRef = *pr.Head.Ref + } + if pr.Head.SHA != nil { + headSHA = *pr.Head.SHA } var mergeCommitSHA string if pr.MergeCommitSHA != nil { mergeCommitSHA = *pr.MergeCommitSHA } + var headUserName string + if pr.Head.User != nil && pr.Head.User.Login != nil { + headUserName = *pr.Head.User.Login + } + allPRs = append(allPRs, &base.PullRequest{ Title: *pr.Title, Number: int64(*pr.Number), @@ -443,10 +462,10 @@ func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullReq MergedTime: pr.MergedAt, IsLocked: pr.ActiveLockReason != nil, Head: base.PullRequestBranch{ - Ref: *pr.Head.Ref, - SHA: *pr.Head.SHA, + Ref: headRef, + SHA: headSHA, RepoName: headRepoName, - OwnerName: *pr.Head.User.Login, + OwnerName: headUserName, CloneURL: cloneURL, }, Base: base.PullRequestBranch{