1
1
mirror of https://github.com/go-gitea/gitea synced 2024-11-19 08:34:29 +00:00

Migration: Gitlab: Support Subdirectory (#13563) (#13591)

Co-authored-by: techknowlogick <techknowlogick@gitea.io>

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
6543 2020-11-17 08:01:33 +01:00 committed by GitHub
parent c6ab79ee3c
commit ed3a4cd103
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,6 +11,7 @@ import (
"io"
"net/http"
"net/url"
"path"
"strings"
"time"
@ -87,6 +88,23 @@ func NewGitlabDownloader(ctx context.Context, baseURL, repoPath, username, passw
return nil, err
}
// split namespace and subdirectory
pathParts := strings.Split(strings.Trim(repoPath, "/"), "/")
for len(pathParts) > 2 {
if _, _, err = gitlabClient.Version.GetVersion(); err == nil {
break
}
baseURL = path.Join(baseURL, pathParts[0])
pathParts = pathParts[1:]
_ = gitlab.WithBaseURL(baseURL)(gitlabClient)
repoPath = strings.Join(pathParts, "/")
}
if err != nil {
log.Trace("Error could not get gitlab version: %v", err)
return nil, err
}
// 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 {