From 5b1c73ecacc8655351d7654b9d983444e4987050 Mon Sep 17 00:00:00 2001 From: harryzcy Date: Fri, 15 Jul 2022 23:33:55 -0400 Subject: [PATCH] Allow syncing with mirror option checked --- modules/migration/downloader.go | 1 + modules/migration/null_downloader.go | 5 +++++ routers/web/repo/migrate.go | 8 -------- services/migrations/migrate.go | 5 +++++ 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/modules/migration/downloader.go b/modules/migration/downloader.go index a22c737f7a..9e1c55eed9 100644 --- a/modules/migration/downloader.go +++ b/modules/migration/downloader.go @@ -29,6 +29,7 @@ type Downloader interface { FormatCloneURL(opts MigrateOptions, remoteAddr string) (string, error) // For syncing issues and pull requests + SupportSyncing() bool GetNewIssues(page, perPage int, updatedAfter time.Time) ([]*Issue, bool, error) GetNewComments(commentable Commentable, updatedAfter time.Time) ([]*Comment, bool, error) GetAllNewComments(page, perPage int, updatedAfter time.Time) ([]*Comment, bool, error) diff --git a/modules/migration/null_downloader.go b/modules/migration/null_downloader.go index 3e90ff0fb2..b97b122243 100644 --- a/modules/migration/null_downloader.go +++ b/modules/migration/null_downloader.go @@ -89,6 +89,11 @@ func (n NullDownloader) SupportGetRepoComments() bool { return false } +// SupportSyncing returns true if it supports syncing issues/PRs/etc from pull mirror +func (n NullDownloader) SupportSyncing() bool { + return false +} + // GetNewIssues returns new issues updated after the given time according start and limit func (n NullDownloader) GetNewIssues(page, perPage int, updatedAfter time.Time) ([]*Issue, bool, error) { return nil, false, ErrNotSupported{Entity: "NewIssues"} diff --git a/routers/web/repo/migrate.go b/routers/web/repo/migrate.go index 393f8ed3d9..76b2a857fb 100644 --- a/routers/web/repo/migrate.go +++ b/routers/web/repo/migrate.go @@ -223,14 +223,6 @@ func MigratePost(ctx *context.Context) { PullRequests: form.PullRequests, Releases: form.Releases, } - if opts.Mirror { - opts.Issues = false - opts.Milestones = false - opts.Labels = false - opts.Comments = false - opts.PullRequests = false - opts.Releases = false - } err = repo_model.CheckCreateRepository(ctx.Doer, ctxUser, opts.RepoName, false) if err != nil { diff --git a/services/migrations/migrate.go b/services/migrations/migrate.go index ca56344b7a..8126cae3d1 100644 --- a/services/migrations/migrate.go +++ b/services/migrations/migrate.go @@ -470,6 +470,11 @@ func SyncRepository(ctx context.Context, doer *user_model.User, ownerName string return nil, err } + if !downloader.SupportSyncing() { + log.Info("repository syncing is not supported, ignored") + return nil, nil + } + uploader := NewGiteaLocalUploader(ctx, doer, ownerName, opts.RepoName) uploader.gitServiceType = opts.GitServiceType