* On Migration respect old DefaultBranch * add DefaultBranch int test set Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: zeripath <art27@cantab.net>tags/v1.12.5
@@ -7,13 +7,14 @@ package base | |||
// Repository defines a standard repository information | |||
type Repository struct { | |||
Name string | |||
Owner string | |||
IsPrivate bool | |||
IsMirror bool | |||
Description string | |||
AuthUsername string | |||
AuthPassword string | |||
CloneURL string | |||
OriginalURL string | |||
Name string | |||
Owner string | |||
IsPrivate bool | |||
IsMirror bool | |||
Description string | |||
AuthUsername string | |||
AuthPassword string | |||
CloneURL string | |||
OriginalURL string | |||
DefaultBranch string | |||
} |
@@ -119,6 +119,7 @@ func (g *GiteaLocalUploader) CreateRepo(repo *base.Repository, opts base.Migrate | |||
if err != nil { | |||
return err | |||
} | |||
r.DefaultBranch = repo.DefaultBranch | |||
r, err = repository.MigrateRepositoryGitData(g.doer, owner, r, structs.MigrateRepoOption{ | |||
RepoName: g.repoName, |
@@ -154,14 +154,20 @@ func (g *GithubDownloaderV3) GetRepoInfo() (*base.Repository, error) { | |||
} | |||
g.rate = &resp.Rate | |||
defaultBranch := "" | |||
if gr.DefaultBranch != nil { | |||
defaultBranch = *gr.DefaultBranch | |||
} | |||
// convert github repo to stand Repo | |||
return &base.Repository{ | |||
Owner: g.repoOwner, | |||
Name: gr.GetName(), | |||
IsPrivate: *gr.Private, | |||
Description: gr.GetDescription(), | |||
OriginalURL: gr.GetHTMLURL(), | |||
CloneURL: gr.GetCloneURL(), | |||
Owner: g.repoOwner, | |||
Name: gr.GetName(), | |||
IsPrivate: *gr.Private, | |||
Description: gr.GetDescription(), | |||
OriginalURL: gr.GetHTMLURL(), | |||
CloneURL: gr.GetCloneURL(), | |||
DefaultBranch: defaultBranch, | |||
}, nil | |||
} | |||
@@ -71,11 +71,12 @@ func TestGitHubDownloadRepo(t *testing.T) { | |||
repo, err := downloader.GetRepoInfo() | |||
assert.NoError(t, err) | |||
assert.EqualValues(t, &base.Repository{ | |||
Name: "test_repo", | |||
Owner: "go-gitea", | |||
Description: "Test repository for testing migration from github to gitea", | |||
CloneURL: "https://github.com/go-gitea/test_repo.git", | |||
OriginalURL: "https://github.com/go-gitea/test_repo", | |||
Name: "test_repo", | |||
Owner: "go-gitea", | |||
Description: "Test repository for testing migration from github to gitea", | |||
CloneURL: "https://github.com/go-gitea/test_repo.git", | |||
OriginalURL: "https://github.com/go-gitea/test_repo", | |||
DefaultBranch: "master", | |||
}, repo) | |||
topics, err := downloader.GetTopics() |
@@ -157,12 +157,13 @@ func (g *GitlabDownloader) GetRepoInfo() (*base.Repository, error) { | |||
// convert gitlab repo to stand Repo | |||
return &base.Repository{ | |||
Owner: owner, | |||
Name: gr.Name, | |||
IsPrivate: private, | |||
Description: gr.Description, | |||
OriginalURL: gr.WebURL, | |||
CloneURL: gr.HTTPURLToRepo, | |||
Owner: owner, | |||
Name: gr.Name, | |||
IsPrivate: private, | |||
Description: gr.Description, | |||
OriginalURL: gr.WebURL, | |||
CloneURL: gr.HTTPURLToRepo, | |||
DefaultBranch: gr.DefaultBranch, | |||
}, nil | |||
} | |||
@@ -35,11 +35,12 @@ func TestGitlabDownloadRepo(t *testing.T) { | |||
assert.NoError(t, err) | |||
// Repo Owner is blank in Gitlab Group repos | |||
assert.EqualValues(t, &base.Repository{ | |||
Name: "test_repo", | |||
Owner: "", | |||
Description: "Test repository for testing migration from gitlab to gitea", | |||
CloneURL: "https://gitlab.com/gitea/test_repo.git", | |||
OriginalURL: "https://gitlab.com/gitea/test_repo", | |||
Name: "test_repo", | |||
Owner: "", | |||
Description: "Test repository for testing migration from gitlab to gitea", | |||
CloneURL: "https://gitlab.com/gitea/test_repo.git", | |||
OriginalURL: "https://gitlab.com/gitea/test_repo", | |||
DefaultBranch: "master", | |||
}, repo) | |||
topics, err := downloader.GetTopics() |
@@ -102,18 +102,22 @@ func MigrateRepositoryGitData(doer, u *models.User, repo *models.Repository, opt | |||
return repo, fmt.Errorf("git.IsEmpty: %v", err) | |||
} | |||
if !opts.Releases && !repo.IsEmpty { | |||
// Try to get HEAD branch and set it as default branch. | |||
headBranch, err := gitRepo.GetHEADBranch() | |||
if err != nil { | |||
return repo, fmt.Errorf("GetHEADBranch: %v", err) | |||
} | |||
if headBranch != nil { | |||
repo.DefaultBranch = headBranch.Name | |||
if !repo.IsEmpty { | |||
if len(repo.DefaultBranch) == 0 { | |||
// Try to get HEAD branch and set it as default branch. | |||
headBranch, err := gitRepo.GetHEADBranch() | |||
if err != nil { | |||
return repo, fmt.Errorf("GetHEADBranch: %v", err) | |||
} | |||
if headBranch != nil { | |||
repo.DefaultBranch = headBranch.Name | |||
} | |||
} | |||
if err = SyncReleasesWithTags(repo, gitRepo); err != nil { | |||
log.Error("Failed to synchronize tags to releases for repository: %v", err) | |||
if !opts.Releases { | |||
if err = SyncReleasesWithTags(repo, gitRepo); err != nil { | |||
log.Error("Failed to synchronize tags to releases for repository: %v", err) | |||
} | |||
} | |||
} | |||