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:
		
							parent
							
								
									3bf5a07537
								
							
						
					
					
						commit
						382936a668
					
				
					 3 changed files with 16 additions and 17 deletions
				
			
		|  | @ -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") | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue