repo库迁移及批量创建gitlab库
来源:互联网 发布:重庆交通大学网络教育 编辑:程序博客网 时间:2024/06/13 14:01
repo库迁移及批量创建gitlab库
背景:
开发代码放置在外部git服务器,使用repo进行代码更新,由于代码量大、库多、公司网络环境等影响,从服务器获取整体代码速度缓慢,将借助jenkins及gitlab,在本地linux服务器创建repo版本库,将外部服务器代码整体保存到本地局域网服务器,编译开发时从本地服务器取得代码使用。
实施:
1.取得外部服务器的镜像库 (your_url 为外部库地址)
因为整体代码由200多个代码库组成,直接使用repo获取镜像库,追加--mirror参数,将下面标红字体替换为你的repo路径
eg:
mkdir repo_mirror
cd repo_mirror
初始化版本库:
repo init --mirror -u your_url/manifests.git--repo-urlyour_url/repo.git -mmanifest.xml
同步:
repo sync
同步完成后,将在下面将所有repo代码库的镜像库放置到repo_mirror目录下。
2.取得所有代码库文件名,方便批量创建project
repo_mirror目录执行:ls >../projects_list.txt
打开projects_list.txt将projects_list.txt 内所有.git 替换为 \
替换前:
pro1.gitpro2.gitpro3.git
替换后:
pro1 \pro2 \pro3 \
3.使用gitlab api批量在指定groups下创建project。(gitlab环境之前已配置ok,此处不详细说明)
浏览器访问http://your_ip/api/v3/projects 查找需要groups的ID ,对应为namespace的id,取得本次创建需要的组id值为2。
ps:具体应该可以使用gitlab的api命令获取,没有仔细研究.....见谅......
"namespace": { "id": 2, "name": "git", "path": "git", "owner_id": null, "created_at": "2016-12-24T08:56:03.582Z", "updated_at": "2017-09-25T10:30:52.538Z", "description": "", "avatar": { "url": null },
4.创建gitlab的projects
使用第二步取得的库名及第三步的groups id 创建 project。
private_token从gitlab中获取,
另注意path的值不要使用默认,测试时候发现如果库名中有"."的情况默认会替换为"-",被这个坑了好久。
创建脚本:
projects="pro1 \pro2 \pro3 "for project in $projectsdo info="name=$project&path=$project&wiki_enabled=no&public_jobs=true&public=true&namespace_id=2&default_branch=master&private_token=your_private_token" curl -d $info "http://your_ip/api/v3/projects"done执行结束后到登录到gitlab,确定库创建完成。
5.将镜像库上传到本地gitlab上
创建脚本:
dir_name="$PWD"all=`ls ${dir_name}`for i in $alldoif [ -d $i ]thenecho "[$i]"cd $igit push --mirror git@your_ip:git/$icd ..fidone执行脚本,确定版本库push无误。
6.可以使用本地库进行repo代码取得 (your_local_url为本地gitlab库地址)
repo init -u your_local_url/manifests.git--repo-urlyour_local_url/repo.git -mmanifest.xml
同步:repo sync
后记:利用Jenkins自动更新及上传代码库到本地,缩小和外部服务器的代码差异。
参考内容:
gitlab api:https://docs.gitlab.com/ee/api/README.html
- repo库迁移及批量创建gitlab库
- gitlab 使用API批量创建群组和代码库
- Gitlab 批量创建用户
- repo---批量删除,创建分支
- gitlab服务器搭建及数据迁移
- GitLab迁移
- gitlab 迁移
- gitlab迁移
- ORACLE迁移中的一些经验(二)批量导出job,并在目标库创建
- 批量备份/迁移SVN版本库
- GitLab之创建项目组及项目
- GitLab之创建项目组及项目
- gitlab的安装及仓库创建
- GitLab之创建项目组及项目
- 创建私有cocoapods repo库 —— Private Pods
- gitlab备份迁移
- gitlab迁移小记
- gitlab迁移升级
- [转]TensorFlow 在使用过程中可能遇到的问题及解决办法
- 数据结构——线性表
- KD-Tree解决空间最短距离的利器
- 递推公式黑科技
- MySQL 5.1版本安装失败解决方案
- repo库迁移及批量创建gitlab库
- Ubuntu16.04 python3.5下安装pip3与TensorFlow1.0.0
- 飞翔的小鸟--键盘事件案例
- 每个数据科学专家都应该知道的六个概率分布
- 内联函数和宏定义的区别
- CC2640R2F之NOTIFY发送子程序
- 页面拖拽效果
- Android开发人员不得不收集的代码(持续更新中)
- Java经典设计模式之十一种行为型模式(附实例和详解)