From 60107d05e7326f64e2060de102a98a591a42ea4f Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 17 Feb 2021 12:13:52 +0800 Subject: [PATCH 1/2] Fix github download on migration --- modules/migrations/github.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/modules/migrations/github.go b/modules/migrations/github.go index 8d49f9308e8ab..c44a3fb6000f3 100644 --- a/modules/migrations/github.go +++ b/modules/migrations/github.go @@ -6,11 +6,9 @@ package migrations import ( - "bytes" "context" "fmt" "io" - "io/ioutil" "net/http" "net/url" "strings" @@ -292,6 +290,7 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) } for _, asset := range rel.Assets { + var assetID = *asset.ID // Don't optimize this, for closure we need a local variable r.Assets = append(r.Assets, &base.ReleaseAsset{ ID: *asset.ID, Name: *asset.Name, @@ -302,7 +301,7 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) Updated: asset.UpdatedAt.Time, DownloadFunc: func() (io.ReadCloser, error) { g.sleep() - asset, redir, err := g.client.Repositories.DownloadReleaseAsset(g.ctx, g.repoOwner, g.repoName, *asset.ID, http.DefaultClient) + asset, redir, err := g.client.Repositories.DownloadReleaseAsset(g.ctx, g.repoOwner, g.repoName, assetID, nil) if err != nil { return nil, err } @@ -311,7 +310,19 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) log.Error("g.client.RateLimits: %s", err) } if asset == nil { - return ioutil.NopCloser(bytes.NewBufferString(redir)), nil + if redir != "" { + g.sleep() + resp, err := http.DefaultClient.Get(redir) + err1 := g.RefreshRate() + if err1 != nil { + log.Error("g.client.RateLimits: %s", err1) + } + if err != nil { + return nil, err + } + return resp.Body, nil + } + return nil, fmt.Errorf("No release asset found for %d", assetID) } return asset, nil }, From 070fae912de289925d28d7627902e003f34c90e2 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Wed, 17 Feb 2021 23:56:26 +0100 Subject: [PATCH 2/2] Update modules/migrations/github.go Co-authored-by: zeripath --- modules/migrations/github.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/migrations/github.go b/modules/migrations/github.go index c44a3fb6000f3..cb61086b2ad6b 100644 --- a/modules/migrations/github.go +++ b/modules/migrations/github.go @@ -312,7 +312,11 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) if asset == nil { if redir != "" { g.sleep() - resp, err := http.DefaultClient.Get(redir) + req, err := http.NewRequestWithContext(g.ctx, "GET", redir, nil) + if err != nil { + return nil, err + } + resp, err := http.DefaultClient.Do(req) err1 := g.RefreshRate() if err1 != nil { log.Error("g.client.RateLimits: %s", err1)