summaryrefslogtreecommitdiffstats
path: root/modules/migrations/base
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2019-12-17 12:16:54 +0800
committertechknowlogick <techknowlogick@gitea.io>2019-12-16 23:16:54 -0500
commitffc904b1e0635d17e55b5fbdea4e18832ee2276d (patch)
tree209691d128fb2e23476e0b1ac67c51c6f5b693de /modules/migrations/base
parentd1a49977b089afefc40172711d02eb795d2234de (diff)
downloadgitea-ffc904b1e0635d17e55b5fbdea4e18832ee2276d.tar.gz
gitea-ffc904b1e0635d17e55b5fbdea4e18832ee2276d.zip
Sleep longer if request speed is over github limitation (#9335)
* Sleep longer if request speed is over github limitation * improve code * remove unused code * fix lint * Use github's rate limit remain value to determine how long to sleep * Save reset time when finished github api request * fix bug * fix lint * Add context.Context for sleep * fix test * improve code * fix bug and lint * fix import order
Diffstat (limited to 'modules/migrations/base')
-rw-r--r--modules/migrations/base/downloader.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/migrations/base/downloader.go b/modules/migrations/base/downloader.go
index b853ec3020..87ade5c02e 100644
--- a/modules/migrations/base/downloader.go
+++ b/modules/migrations/base/downloader.go
@@ -6,6 +6,7 @@
package base
import (
+ "context"
"time"
"code.gitea.io/gitea/modules/structs"
@@ -13,6 +14,7 @@ import (
// Downloader downloads the site repo informations
type Downloader interface {
+ SetContext(context.Context)
GetRepoInfo() (*Repository, error)
GetTopics() ([]string, error)
GetMilestones() ([]*Milestone, error)
@@ -30,6 +32,10 @@ type DownloaderFactory interface {
GitServiceType() structs.GitServiceType
}
+var (
+ _ Downloader = &RetryDownloader{}
+)
+
// RetryDownloader retry the downloads
type RetryDownloader struct {
Downloader
@@ -46,6 +52,11 @@ func NewRetryDownloader(downloader Downloader, retryTimes, retryDelay int) *Retr
}
}
+// SetContext set context
+func (d *RetryDownloader) SetContext(ctx context.Context) {
+ d.Downloader.SetContext(ctx)
+}
+
// GetRepoInfo returns a repository information with retry
func (d *RetryDownloader) GetRepoInfo() (*Repository, error) {
var (