【工具使用】【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  小结

好啦,如果使用有问题的话大家可以评论,欢迎指点。

posted @ 2024-05-18 16:52  酷酷-  阅读(104)  评论(0编辑  收藏  举报