From 140336c1466b094f84892fd58c64f1cbc5189bbc Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Fri, 18 Mar 2022 21:46:33 +0000 Subject: [PATCH 1/3] Make migrations SKIP_TLS_VERIFY apply to git too Make SKIP_TLS_VERIFY apply to git data migrations too Fix #18998 Signed-off-by: Andrew Thornton --- modules/git/repo.go | 22 +++++++++++++--------- modules/repository/repo.go | 7 ++++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/modules/git/repo.go b/modules/git/repo.go index 8217521b06048..5ba39ac7e3bbc 100644 --- a/modules/git/repo.go +++ b/modules/git/repo.go @@ -98,15 +98,16 @@ func (repo *Repository) IsEmpty() (bool, error) { // CloneRepoOptions options when clone a repository type CloneRepoOptions struct { - Timeout time.Duration - Mirror bool - Bare bool - Quiet bool - Branch string - Shared bool - NoCheckout bool - Depth int - Filter string + Timeout time.Duration + Mirror bool + Bare bool + Quiet bool + Branch string + Shared bool + NoCheckout bool + Depth int + Filter string + SkipTLSVerify bool } // Clone clones original repository to target path. @@ -124,6 +125,9 @@ func CloneWithArgs(ctx context.Context, from, to string, args []string, opts Clo } cmd := NewCommandContextNoGlobals(ctx, args...).AddArguments("clone") + if opts.SkipTLSVerify { + cmd.AddArguments("-c", "http.sslVerify=false") + } if opts.Mirror { cmd.AddArguments("--mirror") } diff --git a/modules/repository/repo.go b/modules/repository/repo.go index ed9ed508be4c6..96c76f6809045 100644 --- a/modules/repository/repo.go +++ b/modules/repository/repo.go @@ -72,9 +72,10 @@ func MigrateRepositoryGitData(ctx context.Context, u *user_model.User, } if err = git.Clone(ctx, opts.CloneAddr, repoPath, git.CloneRepoOptions{ - Mirror: true, - Quiet: true, - Timeout: migrateTimeout, + Mirror: true, + Quiet: true, + Timeout: migrateTimeout, + SkipTLSVerify: setting.Migrations.SkipTLSVerify, }); err != nil { return repo, fmt.Errorf("Clone: %v", err) } From 6facd92eedb9917227c3dd365858c06e5ef1fb71 Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Sat, 19 Mar 2022 11:40:19 +0000 Subject: [PATCH 2/3] And wiki too Signed-off-by: Andrew Thornton --- modules/repository/repo.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/repository/repo.go b/modules/repository/repo.go index 96c76f6809045..13710bd4abfc0 100644 --- a/modules/repository/repo.go +++ b/modules/repository/repo.go @@ -89,10 +89,11 @@ func MigrateRepositoryGitData(ctx context.Context, u *user_model.User, } if err = git.Clone(ctx, wikiRemotePath, wikiPath, git.CloneRepoOptions{ - Mirror: true, - Quiet: true, - Timeout: migrateTimeout, - Branch: "master", + Mirror: true, + Quiet: true, + Timeout: migrateTimeout, + Branch: "master", + SkipTLSVerify: setting.Migrations.SkipTLSVerify, }); err != nil { log.Warn("Clone wiki: %v", err) if err := util.RemoveAll(wikiPath); err != nil { From 5efee83dab79eeeb27837bdadef9ee9ccae7f829 Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Sat, 19 Mar 2022 11:47:14 +0000 Subject: [PATCH 3/3] And do dumper too Signed-off-by: Andrew Thornton --- services/migrations/dump.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/services/migrations/dump.go b/services/migrations/dump.go index 9a093ef29892e..594b78511ac4c 100644 --- a/services/migrations/dump.go +++ b/services/migrations/dump.go @@ -22,6 +22,7 @@ import ( "code.gitea.io/gitea/modules/log" base "code.gitea.io/gitea/modules/migration" "code.gitea.io/gitea/modules/repository" + "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/structs" "gopkg.in/yaml.v2" @@ -149,9 +150,10 @@ func (g *RepositoryDumper) CreateRepo(repo *base.Repository, opts base.MigrateOp } err = git.Clone(g.ctx, remoteAddr, repoPath, git.CloneRepoOptions{ - Mirror: true, - Quiet: true, - Timeout: migrateTimeout, + Mirror: true, + Quiet: true, + Timeout: migrateTimeout, + SkipTLSVerify: setting.Migrations.SkipTLSVerify, }) if err != nil { return fmt.Errorf("Clone: %v", err) @@ -166,10 +168,11 @@ func (g *RepositoryDumper) CreateRepo(repo *base.Repository, opts base.MigrateOp } if err := git.Clone(g.ctx, wikiRemotePath, wikiPath, git.CloneRepoOptions{ - Mirror: true, - Quiet: true, - Timeout: migrateTimeout, - Branch: "master", + Mirror: true, + Quiet: true, + Timeout: migrateTimeout, + Branch: "master", + SkipTLSVerify: setting.Migrations.SkipTLSVerify, }); err != nil { log.Warn("Clone wiki: %v", err) if err := os.RemoveAll(wikiPath); err != nil {