mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Backport Migration Option AuthToken (#13101)
fix #13085 Backport #12862 Backport Parts of #12672
This commit is contained in:
		@@ -56,10 +56,11 @@ func (f *GitlabDownloaderFactory) New(opts base.MigrateOptions) (base.Downloader
 | 
			
		||||
 | 
			
		||||
	baseURL := u.Scheme + "://" + u.Host
 | 
			
		||||
	repoNameSpace := strings.TrimPrefix(u.Path, "/")
 | 
			
		||||
	repoNameSpace = strings.TrimSuffix(repoNameSpace, ".git")
 | 
			
		||||
 | 
			
		||||
	log.Trace("Create gitlab downloader. BaseURL: %s RepoName: %s", baseURL, repoNameSpace)
 | 
			
		||||
 | 
			
		||||
	return NewGitlabDownloader(baseURL, repoNameSpace, opts.AuthUsername, opts.AuthPassword), nil
 | 
			
		||||
	return NewGitlabDownloader(baseURL, repoNameSpace, opts.AuthUsername, opts.AuthPassword, opts.AuthToken), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GitServiceType returns the type of git service
 | 
			
		||||
@@ -85,15 +86,12 @@ type GitlabDownloader struct {
 | 
			
		||||
// NewGitlabDownloader creates a gitlab Downloader via gitlab API
 | 
			
		||||
//   Use either a username/password, personal token entered into the username field, or anonymous/public access
 | 
			
		||||
//   Note: Public access only allows very basic access
 | 
			
		||||
func NewGitlabDownloader(baseURL, repoPath, username, password string) *GitlabDownloader {
 | 
			
		||||
	var gitlabClient *gitlab.Client
 | 
			
		||||
	var err error
 | 
			
		||||
	if username != "" {
 | 
			
		||||
		if password == "" {
 | 
			
		||||
			gitlabClient, err = gitlab.NewClient(username, gitlab.WithBaseURL(baseURL))
 | 
			
		||||
		} else {
 | 
			
		||||
			gitlabClient, err = gitlab.NewBasicAuthClient(username, password, gitlab.WithBaseURL(baseURL))
 | 
			
		||||
		}
 | 
			
		||||
func NewGitlabDownloader(baseURL, repoPath, username, password, token string) *GitlabDownloader {
 | 
			
		||||
	gitlabClient, err := gitlab.NewClient(token, gitlab.WithBaseURL(baseURL))
 | 
			
		||||
	// Only use basic auth if token is blank and password is NOT
 | 
			
		||||
	// Basic auth will fail with empty strings, but empty token will allow anonymous public API usage
 | 
			
		||||
	if token == "" && password != "" {
 | 
			
		||||
		gitlabClient, err = gitlab.NewBasicAuthClient(username, password, gitlab.WithBaseURL(baseURL))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user