]> source.dussan.org Git - gitea.git/commitdiff
Fix migration panic when Head.User is not exist (#7226)
authorLunny Xiao <xiaolunwen@gmail.com>
Tue, 18 Jun 2019 16:15:39 +0000 (00:15 +0800)
committertechknowlogick <techknowlogick@gitea.io>
Tue, 18 Jun 2019 16:15:39 +0000 (12:15 -0400)
* fix migration panic when Head.User is not exist

* fix test

modules/migrations/github.go

index 21c1becedfb7db2905a459b2a3f0acdef61f79a5..6847787aceff9e0f3bf01bb8480395b6b3a9dd8b 100644 (file)
@@ -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{