1 前言
电脑重置了或者新的项目代码,仓库里二三十个,一个一个拉属实有点拉跨,今儿空了整了个脚本,可以拉下所有的仓库代码。
2 前置
需要装一个解析 json的,windows 的话可以直接下载:下载,mac的话可以再官网下载:官网地址。
然后加入到 PATH 下,效果如下:
3 脚本
我就直接贴了哈,好久没写脚本了,还翻了翻基本语法,调式了老半天,写一点调试一点,哈哈哈:
使用步骤:
(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 clonegit clone $obj done echo "handle end"
4 小结
好啦,如果使用有问题的话大家可以评论,欢迎指点。