diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2021-02-22 11:57:41 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-22 11:57:41 +0800 |
commit | e79dae29cc2fcabc639ff27f28a9adf1fa07b28c (patch) | |
tree | e801e6e3a7a0f3fdc2e76ea94e1dfbc5912494b1 /modules/migrations | |
parent | cd8b2f32738f4d1dfe23f698d5ce279b571567dd (diff) | |
download | gitea-e79dae29cc2fcabc639ff27f28a9adf1fa07b28c.tar.gz gitea-e79dae29cc2fcabc639ff27f28a9adf1fa07b28c.zip |
Fix repo-restore bug with poster not replaced (#14759)
* Fix restore bug
* Fix restore bug
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'modules/migrations')
-rw-r--r-- | modules/migrations/dump.go | 27 | ||||
-rw-r--r-- | modules/migrations/restore.go | 12 |
2 files changed, 28 insertions, 11 deletions
diff --git a/modules/migrations/dump.go b/modules/migrations/dump.go index 3c3b9a1753..297095883b 100644 --- a/modules/migrations/dump.go +++ b/modules/migrations/dump.go @@ -12,6 +12,7 @@ import ( "net/url" "os" "path/filepath" + "strconv" "time" "code.gitea.io/gitea/models" @@ -19,6 +20,7 @@ import ( "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/migrations/base" "code.gitea.io/gitea/modules/repository" + "code.gitea.io/gitea/modules/structs" "gopkg.in/yaml.v2" ) @@ -572,20 +574,27 @@ func RestoreRepository(ctx context.Context, baseDir string, ownerName, repoName if err != nil { return err } + opts, err := downloader.getRepoOptions() + if err != nil { + return err + } + tp, _ := strconv.Atoi(opts["service_type"]) + if err = migrateRepository(downloader, uploader, base.MigrateOptions{ - Wiki: true, - Issues: true, - Milestones: true, - Labels: true, - Releases: true, - Comments: true, - PullRequests: true, - ReleaseAssets: true, + Wiki: true, + Issues: true, + Milestones: true, + Labels: true, + Releases: true, + Comments: true, + PullRequests: true, + ReleaseAssets: true, + GitServiceType: structs.GitServiceType(tp), }); err != nil { if err1 := uploader.Rollback(); err1 != nil { log.Error("rollback failed: %v", err1) } return err } - return nil + return updateMigrationPosterIDByGitService(ctx, structs.GitServiceType(tp)) } diff --git a/modules/migrations/restore.go b/modules/migrations/restore.go index e1ab408e41..4e63df1429 100644 --- a/modules/migrations/restore.go +++ b/modules/migrations/restore.go @@ -53,8 +53,7 @@ func (r *RepositoryRestorer) SetContext(ctx context.Context) { r.ctx = ctx } -// GetRepoInfo returns a repository information -func (r *RepositoryRestorer) GetRepoInfo() (*base.Repository, error) { +func (r *RepositoryRestorer) getRepoOptions() (map[string]string, error) { p := filepath.Join(r.baseDir, "repo.yml") bs, err := ioutil.ReadFile(p) if err != nil { @@ -66,6 +65,15 @@ func (r *RepositoryRestorer) GetRepoInfo() (*base.Repository, error) { if err != nil { return nil, err } + return opts, nil +} + +// GetRepoInfo returns a repository information +func (r *RepositoryRestorer) GetRepoInfo() (*base.Repository, error) { + opts, err := r.getRepoOptions() + if err != nil { + return nil, err + } isPrivate, _ := strconv.ParseBool(opts["is_private"]) |