From e0d28e2026c5463a16bc80766d65455248a076a7 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Thu, 19 Nov 2020 11:20:12 -0500 Subject: [PATCH] finaly fix gitlab migration with subdir (#13629) (#13633) * finaly fix #13535 * add logging Co-authored-by: 6543 <6543@obermui.de> --- modules/migrations/gitlab.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/migrations/gitlab.go b/modules/migrations/gitlab.go index 06f4a4ba7..c510944f6 100644 --- a/modules/migrations/gitlab.go +++ b/modules/migrations/gitlab.go @@ -90,12 +90,17 @@ func NewGitlabDownloader(ctx context.Context, baseURL, repoPath, username, passw // split namespace and subdirectory pathParts := strings.Split(strings.Trim(repoPath, "/"), "/") + var resp *gitlab.Response + u, _ := url.Parse(baseURL) for len(pathParts) > 2 { - if _, _, err = gitlabClient.Version.GetVersion(); err == nil { + _, resp, err = gitlabClient.Version.GetVersion() + if err == nil || resp != nil && resp.StatusCode == 401 { + err = nil // if no authentication given, this still should work break } - baseURL = path.Join(baseURL, pathParts[0]) + u.Path = path.Join(u.Path, pathParts[0]) + baseURL = u.String() pathParts = pathParts[1:] _ = gitlab.WithBaseURL(baseURL)(gitlabClient) repoPath = strings.Join(pathParts, "/") @@ -105,6 +110,8 @@ func NewGitlabDownloader(ctx context.Context, baseURL, repoPath, username, passw return nil, err } + log.Trace("gitlab downloader: use BaseURL: '%s' and RepoPath: '%s'", baseURL, repoPath) + // Grab and store project/repo ID here, due to issues using the URL escaped path gr, _, err := gitlabClient.Projects.GetProject(repoPath, nil, nil, gitlab.WithContext(ctx)) if err != nil {