【工具使用】【Shell脚本】【gitlab】下拉所有的仓库代码
1 前言
整台新电脑或者新的项目代码,git上四五十个仓库代码,一个一个拉属实有点拉跨,整了个脚本,可以拉下所有的仓库代码。
2 前置
需要装一个解析 json的,windows 的话可以直接下载:下载,mac的话可以再官网下载:官网地址,顺便再给大家推荐个 json 解析语法校验工具:工具地址。
然后加入到 PATH 下,效果如下:
git上新建个 access_token ,下边要用到。
3 脚本
我就直接贴了哈,好久没写脚本了,还翻了翻基本语法,调式了老半天,写一点调试一点,哈哈哈,主要的思路就是:
(1)先把仓库里所有名字都拿到。
(2)然后 git clone 逐个进行下拉。
使用步骤:
(1)新建个脚本文件把下边的脚本复制进去,放到你要拉取代码的位置路径下,然后把 GIT_HOST 、GIT_ACCESS_TOKEN 换成自己的。
(2)然后执行脚本即可,效果如下。
#!/bin/bash # 仓库前缀 GIT_PROTOCOL="http://" # 仓库地址 GIT_HOST="122.222.32.26:8443" # 仓库Token GIT_ACCESS_TOKEN="xxxxwqfqfqvavvsvas" # 认证信息 GIT_AUTH=`echo outh2:$GIT_ACCESS_TOKEN` # 获取的json文件名称 JSON_FILE="data.json" # 获取所有的仓库 echo "download start" curl -H "PRIVATE-TOKEN:$GIT_ACCESS_TOKEN" -H "Content-Type: application/json" "$GIT_PROTOCOL$GIT_HOST/api/v4/projects" > $JSON_FILE # json解析 objs=$(cat $JSON_FILE | jq '.[].path_with_namespace') echo "handle start" for obj in $objs do # 去掉双引号 obj=`echo $obj | sed -e 's/"//g'` # 拼接 clone 地址信息 obj=`echo $GIT_PROTOCOL$GIT_AUTH@$GIT_HOST/$obj` # 打印信息 echo $obj # git clone git clone $obj done echo "handle end"
4 小结
好啦,如果使用有问题的话大家可以评论,欢迎指点。