fix bug when migrating a private repository (#7917)

This commit is contained in:
Lunny Xiao 2019-08-21 04:21:07 +08:00 committed by zeripath
parent 3ac45e3cb5
commit ed58919bfc
1 changed files with 12 additions and 1 deletions

View File

@ -9,6 +9,7 @@ import (
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
"net/url"
"os" "os"
"path" "path"
"path/filepath" "path/filepath"
@ -79,12 +80,22 @@ func (g *GiteaLocalUploader) CreateRepo(repo *base.Repository, opts base.Migrate
return err return err
} }
var remoteAddr = repo.CloneURL
if len(opts.AuthUsername) > 0 {
u, err := url.Parse(repo.CloneURL)
if err != nil {
return err
}
u.User = url.UserPassword(opts.AuthUsername, opts.AuthPassword)
remoteAddr = u.String()
}
r, err := models.MigrateRepository(g.doer, owner, models.MigrateRepoOptions{ r, err := models.MigrateRepository(g.doer, owner, models.MigrateRepoOptions{
Name: g.repoName, Name: g.repoName,
Description: repo.Description, Description: repo.Description,
OriginalURL: repo.OriginalURL, OriginalURL: repo.OriginalURL,
IsMirror: repo.IsMirror, IsMirror: repo.IsMirror,
RemoteAddr: repo.CloneURL, RemoteAddr: remoteAddr,
IsPrivate: repo.IsPrivate, IsPrivate: repo.IsPrivate,
Wiki: opts.Wiki, Wiki: opts.Wiki,
SyncReleasesWithTags: !opts.Releases, // if didn't get releases, then sync them from tags SyncReleasesWithTags: !opts.Releases, // if didn't get releases, then sync them from tags