mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-12-12 14:31:58 +01:00
3f4a67eef8
Backport #24925, partially backport #24934
(`docs/content/doc/help/faq.zh-cn.md` file)
Part of backport has already done by #24942
Also backport #24881 to avoid "deadlock"
---------
Co-authored-by: Zettat123 <zettat123@gmail.com>
(cherry picked from commit 37b73b3337
)
1.6 KiB
1.6 KiB
date | title | slug | weight | toc | draft | aliases | menu | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2023-05-25T17:29:00+08:00 | 迁移界面 | migrations-interfaces | 55 | false | false |
|
|
迁移功能
完整迁移功能在Gitea 1.9.0版本中引入。它定义了两个接口,用于支持从其他Git托管平台迁移存储库数据到Gitea,或者在将来将Gitea数据迁移到其他Git托管平台。
目前已实现了从GitHub、GitLab和其他Gitea实例的迁移。
首先,Gitea在包modules/migration中定义了一些标准对象。它们是Repository
、Milestone
、Release
、ReleaseAsset
、Label
、Issue
、Comment
、PullRequest
、Reaction
、Review
、ReviewComment
。
下载器接口
要从新的Git托管平台迁移,需要进行两个步骤的更新。
- 您应该实现一个
Downloader
,用于获取存储库信息。 - 您应该实现一个
DownloaderFactory
,用于检测URL是否匹配,并创建上述的Downloader
。- 您需要在
init()
中通过RegisterDownloaderFactory
注册DownloaderFactory
。
- 您需要在
您可以在downloader.go中找到这些接口。
上传器接口
目前,只实现了GiteaLocalUploader
,因此我们只能通过此Uploader将下载的数据保存到本地的Gitea实例。目前不支持其他上传器。
您可以在uploader.go中找到这些接口。