mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Add SyncTags to uploader interface (#9326)
* Add sync tags to interface Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix revive Signed-off-by: jolheiser <john.olheiser@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Lunny Xiao
						Lunny Xiao
					
				
			
			
				
	
			
			
			
						parent
						
							3bf5a07537
						
					
				
				
					commit
					382936a668
				
			| @@ -11,7 +11,8 @@ type Uploader interface { | ||||
| 	CreateRepo(repo *Repository, opts MigrateOptions) error | ||||
| 	CreateTopics(topic ...string) error | ||||
| 	CreateMilestones(milestones ...*Milestone) error | ||||
| 	CreateReleases(syncTags bool, releases ...*Release) error | ||||
| 	CreateReleases(releases ...*Release) error | ||||
| 	SyncTags() error | ||||
| 	CreateLabels(labels ...*Label) error | ||||
| 	CreateIssues(issues ...*Issue) error | ||||
| 	CreateComments(comments ...*Comment) error | ||||
|   | ||||
| @@ -201,7 +201,7 @@ func (g *GiteaLocalUploader) CreateLabels(labels ...*base.Label) error { | ||||
| } | ||||
|  | ||||
| // CreateReleases creates releases | ||||
| func (g *GiteaLocalUploader) CreateReleases(syncTags bool, releases ...*base.Release) error { | ||||
| func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error { | ||||
| 	var rels = make([]*models.Release, 0, len(releases)) | ||||
| 	for _, release := range releases { | ||||
| 		var rel = models.Release{ | ||||
| @@ -288,16 +288,13 @@ func (g *GiteaLocalUploader) CreateReleases(syncTags bool, releases ...*base.Rel | ||||
|  | ||||
| 		rels = append(rels, &rel) | ||||
| 	} | ||||
| 	if err := models.InsertReleases(rels...); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if syncTags { | ||||
| 		// sync tags to releases in database | ||||
| 		return models.SyncReleasesWithTags(g.repo, g.gitRepo) | ||||
| 	} | ||||
| 	return models.InsertReleases(rels...) | ||||
| } | ||||
|  | ||||
| 	return nil | ||||
| // SyncTags syncs releases with tags in the database | ||||
| func (g *GiteaLocalUploader) SyncTags() error { | ||||
| 	return models.SyncReleasesWithTags(g.repo, g.gitRepo) | ||||
| } | ||||
|  | ||||
| // CreateIssues creates issues | ||||
|   | ||||
| @@ -161,20 +161,21 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts | ||||
| 		} | ||||
|  | ||||
| 		relBatchSize := uploader.MaxBatchInsertSize("release") | ||||
| 		syncTags := false | ||||
| 		for len(releases) > 0 { | ||||
| 			if len(releases) <= relBatchSize { | ||||
| 				if len(releases) < relBatchSize { | ||||
| 					relBatchSize = len(releases) | ||||
| 				} | ||||
| 				syncTags = true | ||||
| 			if len(releases) < relBatchSize { | ||||
| 				relBatchSize = len(releases) | ||||
| 			} | ||||
|  | ||||
| 			if err := uploader.CreateReleases(syncTags, releases[:relBatchSize]...); err != nil { | ||||
| 			if err := uploader.CreateReleases(releases[:relBatchSize]...); err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| 			releases = releases[relBatchSize:] | ||||
| 		} | ||||
|  | ||||
| 		// Once all releases (if any) are inserted, sync any remaining non-release tags | ||||
| 		if err := uploader.SyncTags(); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	var commentBatchSize = uploader.MaxBatchInsertSize("comment") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user