一个基于 TypeScript 的自动化迁移脚本,用于将 GitLab 上的仓库(含群组)批量完整的迁移到 Gitea。
- Node.js >= 20
- Git 已安装
- Gitea / GitLab 可访问且已经获取到足够权限的 ACCESS_TOKEN
npm install
# 查询 gitlab 中的仓库和组织并在 gitea 中创建(你可能会执行多次,因为有可能gitea服务堵塞了,一直执行到仓库全部存在即可)
npm run create
# 尝试将 gitlab 中的仓库和组织导入 gitea 中(同上)
npm run mirror- 在使用前注意核对 gitlab api 版本为 v4,gitea api 版本为 v1
# .env
GITLAB_ACCESS_KEY=your_gitlab_token
GITEA_ACCESS_KEY=your_gitea_token
GITEA_USERNAME=Coke
GITLAB_USERNAME=Coke
GITLAB_BASE_URL=http://localhost.com # 纯地址,不含路径
GITEA_BASE_URL=http://localhost:3000 # 纯地址,不含路径- 创建组织和仓库都有并发次数限制为 3,上传仓库的并发限制为 3
- 一定要预留一部分空间用于存 mirror 文件(>=你的gitlab仓库容量)
- 如果是第一次迁移,则gitea可能会弹出授权按钮确认,不要忘记了;如果出现了授权失败,就重新启动一遍
- 如果有一部分迁移失败或者创建失败,就多跑几遍