# git_migrator **Repository Path**: hqsspace/git_migrator ## Basic Information - **Project Name**: git_migrator - **Description**: Git群组迁移工程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-23 - **Last Updated**: 2024-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Git群组迁移工程 ## 1. 前期准备 ### Gitlab Docs REST API 文档 ```tex https://docs.gitlab.com/ee/api/rest/ ``` ### AccessToken鉴权 ```tex # 旧令牌 old-AccessToken/aTwRzd6u-LmNUWXQa2ZH # 新令牌 new-AccessToken/y_EBqa-w3PZMLVyLKfgs ``` config.js文件中按照格式配置你自己的地址和令牌 ```js // 旧地址&旧令牌 const oldAccessToken = 'aTwRzd6u-LmNUWXQa2ZH' const oldAddress='http://gitlab.com.cn' // 新地址&新令牌 const newAccessToken = 'y_EBqa-w3PZMLVyLKfgs' const newAddress= `https://oauth2:${newAccessToken}@gitlab.com.cn/gitlab` ``` ## 2. 目录结构 ```sh git_migrator ├── log # 日志文件夹 ├── repositories # 迁移仓库 ├── data # 数据文件夹 │ ├── groups.json # 迁移群组列表nodejs脚本使用 │ └── projects # 迁移仓库列表限.bat脚本使用 └── utils # 工具文件夹 │ ├── axios.js # 网络请求库 │ ├── clean.js # 清理脚本 │ └── log.js # 日志库 ├── clean.js # 清理脚本 ├── config.js # 配置文件 ├── index.js # 迁移主程序 └── index.bat # 迁移主程序bat脚本 ``` ## 3. 问题 bat脚本问题较多 1.只能读取txt文件已经预存的仓库列表 2.仓库名称必须换行且不支持中文,否则无法正确迁移。 3.因为是通过名称拼接的方式访问,集群名称、项目名称、git地址中对应的集群和项目名称不完全对应,需要手动修改。 后期要改为调用gitlab的api获取仓库列表。 nodejs脚本为推荐脚本 1.网络和服务器问题,大量并发请求会导致请求超时,所以改为了串行请求。后期需要新增并发请求数量的配置和控制。(已解决,针对大量I/O操作将队列修改为限流器) 2.获取集群和项目的接口需要优化并发。 3.日志输出到终端有显示问题,需要优化。