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 | 	CreateRepo(repo *Repository, opts MigrateOptions) error | ||||||
| 	CreateTopics(topic ...string) error | 	CreateTopics(topic ...string) error | ||||||
| 	CreateMilestones(milestones ...*Milestone) error | 	CreateMilestones(milestones ...*Milestone) error | ||||||
| 	CreateReleases(syncTags bool, releases ...*Release) error | 	CreateReleases(releases ...*Release) error | ||||||
|  | 	SyncTags() error | ||||||
| 	CreateLabels(labels ...*Label) error | 	CreateLabels(labels ...*Label) error | ||||||
| 	CreateIssues(issues ...*Issue) error | 	CreateIssues(issues ...*Issue) error | ||||||
| 	CreateComments(comments ...*Comment) error | 	CreateComments(comments ...*Comment) error | ||||||
|  |  | ||||||
|  | @ -201,7 +201,7 @@ func (g *GiteaLocalUploader) CreateLabels(labels ...*base.Label) error { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // CreateReleases creates releases
 | // 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)) | 	var rels = make([]*models.Release, 0, len(releases)) | ||||||
| 	for _, release := range releases { | 	for _, release := range releases { | ||||||
| 		var rel = models.Release{ | 		var rel = models.Release{ | ||||||
|  | @ -288,16 +288,13 @@ func (g *GiteaLocalUploader) CreateReleases(syncTags bool, releases ...*base.Rel | ||||||
| 
 | 
 | ||||||
| 		rels = append(rels, &rel) | 		rels = append(rels, &rel) | ||||||
| 	} | 	} | ||||||
| 	if err := models.InsertReleases(rels...); err != nil { |  | ||||||
| 		return err |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	if syncTags { | 	return models.InsertReleases(rels...) | ||||||
| 		// sync tags to releases in database
 | } | ||||||
| 		return models.SyncReleasesWithTags(g.repo, g.gitRepo) |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	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
 | // CreateIssues creates issues
 | ||||||
|  |  | ||||||
|  | @ -161,20 +161,21 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		relBatchSize := uploader.MaxBatchInsertSize("release") | 		relBatchSize := uploader.MaxBatchInsertSize("release") | ||||||
| 		syncTags := false |  | ||||||
| 		for len(releases) > 0 { | 		for len(releases) > 0 { | ||||||
| 			if len(releases) <= relBatchSize { | 			if len(releases) < relBatchSize { | ||||||
| 				if len(releases) < relBatchSize { | 				relBatchSize = len(releases) | ||||||
| 					relBatchSize = len(releases) |  | ||||||
| 				} |  | ||||||
| 				syncTags = true |  | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			if err := uploader.CreateReleases(syncTags, releases[:relBatchSize]...); err != nil { | 			if err := uploader.CreateReleases(releases[:relBatchSize]...); err != nil { | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
| 			releases = releases[relBatchSize:] | 			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") | 	var commentBatchSize = uploader.MaxBatchInsertSize("comment") | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue