code.gitea.io/gitea@v1.22.3/docs/content/development/migrations.zh-cn.md (about)

     1  ---
     2  date: "2023-05-25T17:29:00+08:00"
     3  title: "迁移界面"
     4  slug: "migrations-interfaces"
     5  sidebar_position: 55
     6  toc: false
     7  draft: false
     8  aliases:
     9    - /zh-cn/migrations-interfaces
    10  menu:
    11    sidebar:
    12      parent: "development"
    13      name: "迁移界面"
    14      sidebar_position: 55
    15      identifier: "migrations-interfaces"
    16  ---
    17  
    18  # 迁移功能
    19  
    20  完整迁移功能在Gitea 1.9.0版本中引入。它定义了两个接口,用于支持从其他Git托管平台迁移存储库数据到Gitea,或者在将来将Gitea数据迁移到其他Git托管平台。
    21  
    22  目前已实现了从GitHub、GitLab和其他Gitea实例的迁移。
    23  
    24  首先,Gitea在包[modules/migration](https://github.com/go-gitea/gitea/tree/main/modules/migration)中定义了一些标准对象。它们是`Repository`、`Milestone`、`Release`、`ReleaseAsset`、`Label`、`Issue`、`Comment`、`PullRequest`、`Reaction`、`Review`、`ReviewComment`。
    25  
    26  ## 下载器接口
    27  
    28  要从新的Git托管平台迁移,需要进行两个步骤的更新。
    29  
    30  - 您应该实现一个`Downloader`,用于获取存储库信息。
    31  - 您应该实现一个`DownloaderFactory`,用于检测URL是否匹配,并创建上述的`Downloader`。
    32    - 您需要在`init()`中通过`RegisterDownloaderFactory`注册`DownloaderFactory`。
    33  
    34  您可以在[downloader.go](https://github.com/go-gitea/gitea/blob/main/modules/migration/downloader.go)中找到这些接口。
    35  
    36  ## 上传器接口
    37  
    38  目前,只实现了`GiteaLocalUploader`,因此我们只能通过此Uploader将下载的数据保存到本地的Gitea实例。目前不支持其他上传器。
    39  
    40  您可以在[uploader.go](https://github.com/go-gitea/gitea/blob/main/modules/migration/uploader.go)中找到这些接口。