极狐gitlab数据手动导出导入测试
本文主要测试从源极狐gitlab实例手动迁移数据到目标极狐gitlab实例的可行性。
1. 源极狐gitlab 实例
版本:极狐gitlab v14.10.0
1.1 用户信息
其中 test1 用户属于组 usergroup
1.2 组信息
1.3 组 leffss 信息
1.3.1 组成员信息
包含用户 test2
包含组 usergroup,其中包含用户 test1
1.3.2 子组与项目信息
包含项目 p1、test,子组 testws\test2222
1.3.3 issue 信息
-
issue1 in p1 为 p1 项目,分配给 test1 用户
-
issue2 in test 为 test 项目,分配给 test2 用户
1.3.4 Epics 信息
Epic1 管理 issue1 in p1 和 issue2 in test
1.3.5 Milestone 信息
Milestone1 管理 issue1 in p1
1.4 导出 leffss 组
test2 角色为 owner,故使用 test2 账号导出
组 -- settings -- general -- Advanced -- Export group:
- 组导出功能后面版本可能会逐步废弃,官方建议后面使用 Migrate groups from another instance of GitLab | GitLab
下载导出的组:
1.5 导出 leffss 组下项目
与导出组类似,参考 1.4 章节,使用 test2 账号导出即可
2. 目标极狐gitlab 实例
版本:极狐gitlab v14.10.0
2.1 不创建账号导入
直接使用目标实例 root 管理员账号导入
发现一直转圈,等一会刷新页面即可
然后再将项目导入组 leffss 中,最终发现 issue、epics、milestone 关系都存在,但是 issue 的分配人全部变成 root 管理员了
2.2 创建账号后导入
创建账号 test1 和 test2,以及 usergroup 后,使用 root 账号导入:
导入的组,没有成员信息
然后再使用 root 账号将项目导入组 leffss 中,最终发现 issue、epics、milestone 关系都存在,但是 issue 的分配人全部变成 root 管理员了
虽然有分配记录,但是 issue 还是分配给 root 账号
2.3 创建账号后导入(手动创建成员信息,root 账号导入)
创建账号 test1 和 test2,以及 usergroup 后,使用 root 账号导入:
导入的组,没有成员信息
然后参照源 gitlab 实例手动创建 leffss 组成员信息
然后再使用 root 账号将项目导入组 leffss 中,结果同 2.2 章节
2.4 创建账号后导入(手动创建成员信息,test2 账号导入)
创建账号 test1 和 test2,以及 usergroup 后,使用 root 账号导入:
导入的组,没有成员信息
然后参照源 gitlab 实例手动创建 leffss 组成员信息
然后再使用 test2 账号将项目导入组 leffss 中,结果同 2.2 章节,只是所有 issue 的分配人全部变成 test2 账号了
3. 把账号 public_email 设置为 email 后再导入
源、目标实例 test1 和 test2 都设置 public_email,且都有 test1、test2 账号,以及 usergroup 组(源实例必选设置,目标不需设置,但是还是建议都设置,保持一致)
设置方法:登陆后右上角 - edit profile - Public email
或者
参考API:
情况一:源组的成员包含成员test2和组成员usergroup(包含test1)
结果:使用root账号导入组到目标实例后,无法导入组成员 usergroup,只导入了 test2 成员,然后不做操作,继续使用 root 导入项目,最终结果是只关联了 test2 的issue,但是 test1 账号的 issue 关联的 root 了
情况二:源组的成员包含成员test2和组成员usergroup(包含test1)
结果:使用root账号导入组到目标实例后,无法导入组成员 usergroup,只导入了 test2 成员,然后手动添加组成员usergroup,继续使用 root 导入项目,最终结果还是是只关联了 test2 的issue,但是 test1 账号的 issue 关联的 root 了
情况三:源组的成员包含成员test1,test2,不包含组成员usergroup
结果:使用root账号导入组到目标实例后,正常导入 test1、test2 成员,继续使用 root 导入项目,最终结果 test1 和 test2 的 issue 都正常关联了
情况四:源组的成员包含成员test1,test2,不包含组成员usergroup
结果:使用root账号导入组到目标实例后,正常导入 test1、test2 成员,继续使用 test1 导入项目,最终只有 test1 的 issue 正常关联了,test2 的 issue 关联到 test1 了,原因猜测是导入时需要根据public_email查询账号对应关系,而用户 test1 无此权限
情况五:源组的成员包含成员test1,test2,不包含组成员usergroup
结果:使用root账号导入组到目标实例后,正常导入 test1、test2 成员,继续使用 test2 导入项目,最终只有 test2 的 issue 正常关联了,test1 的 issue 关联到 test2 了,原因同情况四
综上所述:只有情况三能够正常导入组与项目,并且保持 issue 关系不变
2022.5.9测试直接使用新版 Migrate groups 导入测试组下项目如果有单独的成员,也可正常导入,但是还是无法导入组下面的组成员
标签:test1,test2,账号,issue,gitlab,极狐,导入,root From: https://www.cnblogs.com/leffss/p/16643682.html