update (#10079)
This commit is contained in:
		
							parent
							
								
									6bb0f20456
								
							
						
					
					
						commit
						159732dcb7
					
				
					 1 changed files with 20 additions and 14 deletions
				
			
		|  | @ -15,32 +15,34 @@ menu: | ||||||
| 
 | 
 | ||||||
| # Migration Features | # Migration Features | ||||||
| 
 | 
 | ||||||
| The new migration features were introduced in Gitea 1.9.0. It defines two interfaces to support migrating  | The new migration features were introduced in Gitea 1.9.0. It defines two interfaces to support migrating | ||||||
| repositories data from other git host platforms to gitea or, in the future migrating gitea data to other  | repositories data from other git host platforms to gitea or, in the future migrating gitea data to other | ||||||
| git host platforms. Currently, only the migrations from github via APIv3 to Gitea is implemented. | git host platforms. Currently, only the migrations from github via APIv3 to Gitea is implemented. | ||||||
| 
 | 
 | ||||||
| First of all, Gitea defines some standard objects in packages `modules/migrations/base`. They are | First of all, Gitea defines some standard objects in packages `modules/migrations/base`. They are | ||||||
|  `Repository`, `Milestone`, `Release`, `Label`, `Issue`, `Comment`, `PullRequest`. |  `Repository`, `Milestone`, `Release`, `Label`, `Issue`, `Comment`, `PullRequest`, `Reaction`, `Review`, `ReviewComment`. | ||||||
| 
 | 
 | ||||||
| ## Downloader Interfaces | ## Downloader Interfaces | ||||||
| 
 | 
 | ||||||
| To migrate from a new git host platform, there are two steps to be updated. | To migrate from a new git host platform, there are two steps to be updated. | ||||||
| 
 | 
 | ||||||
| - You should implement a `Downloader` which will get all kinds of repository informations. | - You should implement a `Downloader` which will get all kinds of repository informations. | ||||||
| - You should implement a `DownloaderFactory` which is used to detect if the URL matches and  | - You should implement a `DownloaderFactory` which is used to detect if the URL matches and | ||||||
| create a Downloader. | create a Downloader. | ||||||
| - You'll need to register the `DownloaderFactory` via `RegisterDownloaderFactory` on init. | - You'll need to register the `DownloaderFactory` via `RegisterDownloaderFactory` on init. | ||||||
| 
 | 
 | ||||||
| ```Go | ```Go | ||||||
| type Downloader interface { | type Downloader interface { | ||||||
|  | 	SetContext(context.Context) | ||||||
| 	GetRepoInfo() (*Repository, error) | 	GetRepoInfo() (*Repository, error) | ||||||
| 	GetTopics() ([]string, error) | 	GetTopics() ([]string, error) | ||||||
| 	GetMilestones() ([]*Milestone, error) | 	GetMilestones() ([]*Milestone, error) | ||||||
| 	GetReleases() ([]*Release, error) | 	GetReleases() ([]*Release, error) | ||||||
| 	GetLabels() ([]*Label, error) | 	GetLabels() ([]*Label, error) | ||||||
| 	GetIssues(start, limit int) ([]*Issue, error) | 	GetIssues(page, perPage int) ([]*Issue, bool, error) | ||||||
| 	GetComments(issueNumber int64) ([]*Comment, error) | 	GetComments(issueNumber int64) ([]*Comment, error) | ||||||
| 	GetPullRequests(start, limit int) ([]*PullRequest, error) | 	GetPullRequests(page, perPage int) ([]*PullRequest, error) | ||||||
|  | 	GetReviews(pullRequestNumber int64) ([]*Review, error) | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | @ -53,20 +55,24 @@ type DownloaderFactory interface { | ||||||
| 
 | 
 | ||||||
| ## Uploader Interface | ## Uploader Interface | ||||||
| 
 | 
 | ||||||
| Currently, only a `GiteaLocalUploader` is implemented, so we only save downloaded  | Currently, only a `GiteaLocalUploader` is implemented, so we only save downloaded | ||||||
| data via this `Uploader` on the local Gitea instance. Other uploaders are not supported | data via this `Uploader` on the local Gitea instance. Other uploaders are not supported | ||||||
| and will be implemented in future. | and will be implemented in future. | ||||||
| 
 | 
 | ||||||
| ```Go | ```Go | ||||||
| // Uploader uploads all the informations | // Uploader uploads all the informations | ||||||
| type Uploader interface { | type Uploader interface { | ||||||
| 	CreateRepo(repo *Repository, includeWiki bool) error | 	MaxBatchInsertSize(tp string) int | ||||||
| 	CreateMilestone(milestone *Milestone) error | 	CreateRepo(repo *Repository, opts MigrateOptions) error | ||||||
| 	CreateRelease(release *Release) error | 	CreateTopics(topic ...string) error | ||||||
| 	CreateLabel(label *Label) error | 	CreateMilestones(milestones ...*Milestone) error | ||||||
| 	CreateIssue(issue *Issue) error | 	CreateReleases(releases ...*Release) error | ||||||
| 	CreateComment(issueNumber int64, comment *Comment) error | 	SyncTags() error | ||||||
| 	CreatePullRequest(pr *PullRequest) error | 	CreateLabels(labels ...*Label) error | ||||||
|  | 	CreateIssues(issues ...*Issue) error | ||||||
|  | 	CreateComments(comments ...*Comment) error | ||||||
|  | 	CreatePullRequests(prs ...*PullRequest) error | ||||||
|  | 	CreateReviews(reviews ...*Review) error | ||||||
| 	Rollback() error | 	Rollback() error | ||||||
| 	Close() | 	Close() | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue