date: “2019-04-15T17:29:00+08:00” title: “Migrations Interfaces” slug: “migrations-interfaces” weight: 30 toc: false draft: false menu: sidebar:
parent: "developers"
name: "Migrations Interfaces"
weight: 55
identifier: "migrations-interfaces"
Complete migrations were introduced in Gitea 1.9.0. It defines two interfaces to support migrating repository data from other Git host platforms to Gitea or, in the future, migrating Gitea data to other Git host platforms.
Currently, migrations from GitHub, GitLab, and other Gitea instances are implemented.
First of all, Gitea defines some standard objects in packages modules/migration.
They are Repository
, Milestone
, Release
, ReleaseAsset
, Label
, Issue
, Comment
, PullRequest
, Reaction
, Review
, ReviewComment
.
To migrate from a new Git host platform, there are two steps to be updated.
Downloader
which will be used to get repository information.DownloaderFactory
which will be used to detect if the URL matches and create the above Downloader
.
DownloaderFactory
via RegisterDownloaderFactory
on init()
.You can find these interfaces in downloader.go.
Currently, only a GiteaLocalUploader
is implemented, so we only save downloaded
data via this Uploader
to the local Gitea instance. Other uploaders are not supported at this time.
You can find these interfaces in uploader.go.