Enable github sync flag and fix panics

This commit is contained in:
harryzcy 2023-05-06 18:31:48 -04:00
parent ce51877f70
commit 78945ebd0e
No known key found for this signature in database
GPG Key ID: E3C2287691E40E35
3 changed files with 14 additions and 2 deletions

View File

@ -126,6 +126,10 @@ func (g *GithubDownloaderV3) String() string {
return fmt.Sprintf("migration from github server %s %s/%s", g.baseURL, g.repoOwner, g.repoName)
}
func (g *GithubDownloaderV3) SupportSyncing() bool {
return true
}
// ColorFormat provides a basic color format for a GithubDownloader
func (g *GithubDownloaderV3) ColorFormat(s fmt.State) {
if g == nil {

View File

@ -17,6 +17,7 @@ import (
repo_model "code.gitea.io/gitea/models/repo"
system_model "code.gitea.io/gitea/models/system"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/hostmatcher"
"code.gitea.io/gitea/modules/log"
base "code.gitea.io/gitea/modules/migration"
@ -484,7 +485,8 @@ func migrateRepository(doer *user_model.User, downloader base.Downloader, upload
}
// SyncRepository syncs a repository according MigrateOptions
func SyncRepository(ctx context.Context, doer *user_model.User, ownerName string, opts base.MigrateOptions, messenger base.Messenger, lastSynced time.Time) (*repo_model.Repository, error) {
func SyncRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, opts base.MigrateOptions, messenger base.Messenger, lastSynced time.Time) (*repo_model.Repository, error) {
ownerName := repo.OwnerName
downloader, err := newDownloader(ctx, ownerName, opts)
if err != nil {
return nil, err
@ -497,6 +499,12 @@ func SyncRepository(ctx context.Context, doer *user_model.User, ownerName string
uploader := NewGiteaLocalUploader(ctx, doer, ownerName, opts.RepoName)
uploader.gitServiceType = opts.GitServiceType
uploader.repo = repo
uploader.gitRepo, err = git.OpenRepository(ctx, repo.RepoPath())
if err != nil {
log.Error("open repository failed: %v", err)
return nil, err
}
if err := syncRepository(downloader, uploader, opts, messenger, lastSynced); err != nil {
if err1 := uploader.Rollback(); err1 != nil {

View File

@ -427,7 +427,7 @@ func runSyncMisc(ctx context.Context, m *repo_model.Mirror) bool {
MigrateToRepoID: repo.ID,
MirrorInterval: m.Interval.String(),
}
_, err := migrations.SyncRepository(ctx, repo.Owner, repo.OwnerName, opts, nil, m.UpdatedUnix.AsTime())
_, err := migrations.SyncRepository(ctx, repo.Owner, repo, opts, nil, m.UpdatedUnix.AsTime())
if err != nil {
log.Error("SyncMirrors [repo: %-v]: failed to sync repository: %v", m.Repo, err)
return false