Skip to content

Commit 392fe6c

Browse files
lunnytechknowlogick
authored andcommitted
Fix migration panic when Head.User is not exist (#7226)
* fix migration panic when Head.User is not exist * fix test
1 parent 954d24c commit 392fe6c

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

modules/migrations/github.go

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -416,17 +416,36 @@ func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullReq
416416
merged = true
417417
}
418418

419-
var headRepoName string
420-
var cloneURL string
419+
var (
420+
headRepoName string
421+
cloneURL string
422+
headRef string
423+
headSHA string
424+
)
421425
if pr.Head.Repo != nil {
422-
headRepoName = *pr.Head.Repo.Name
423-
cloneURL = *pr.Head.Repo.CloneURL
426+
if pr.Head.Repo.Name != nil {
427+
headRepoName = *pr.Head.Repo.Name
428+
}
429+
if pr.Head.Repo.CloneURL != nil {
430+
cloneURL = *pr.Head.Repo.CloneURL
431+
}
432+
}
433+
if pr.Head.Ref != nil {
434+
headRef = *pr.Head.Ref
435+
}
436+
if pr.Head.SHA != nil {
437+
headSHA = *pr.Head.SHA
424438
}
425439
var mergeCommitSHA string
426440
if pr.MergeCommitSHA != nil {
427441
mergeCommitSHA = *pr.MergeCommitSHA
428442
}
429443

444+
var headUserName string
445+
if pr.Head.User != nil && pr.Head.User.Login != nil {
446+
headUserName = *pr.Head.User.Login
447+
}
448+
430449
allPRs = append(allPRs, &base.PullRequest{
431450
Title: *pr.Title,
432451
Number: int64(*pr.Number),
@@ -443,10 +462,10 @@ func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullReq
443462
MergedTime: pr.MergedAt,
444463
IsLocked: pr.ActiveLockReason != nil,
445464
Head: base.PullRequestBranch{
446-
Ref: *pr.Head.Ref,
447-
SHA: *pr.Head.SHA,
465+
Ref: headRef,
466+
SHA: headSHA,
448467
RepoName: headRepoName,
449-
OwnerName: *pr.Head.User.Login,
468+
OwnerName: headUserName,
450469
CloneURL: cloneURL,
451470
},
452471
Base: base.PullRequestBranch{

0 commit comments

Comments
 (0)