首页 > 系统相关 >【工具使用】【Shell脚本】【gitlab】下拉所有的仓库代码

【工具使用】【Shell脚本】【gitlab】下拉所有的仓库代码

时间:2024-05-18 16:51:47浏览次数:22  
标签:GIT obj 仓库 gitlab TOKEN echo json Shell

1  前言

电脑重置了或者新的项目代码,仓库里二三十个,一个一个拉属实有点拉跨,今儿空了整了个脚本,可以拉下所有的仓库代码。

2  前置

需要装一个解析 json的,windows 的话可以直接下载:下载,mac的话可以再官网下载:官网地址。

然后加入到 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  小结

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

标签:GIT,obj,仓库,gitlab,TOKEN,echo,json,Shell
From: https://www.cnblogs.com/kukuxjx/p/18199372

相关文章

  • 一文掌握:数据湖是什么?可不是数据仓库
    一、什么是数据湖数据湖(DataLake)是指一个大型数据存储和处理系统,它能够存储各种类型和格式的数据,包括结构化数据、半结构化数据和非结构化数据。数据湖的目的是为了让企业可以更好地管理和利用大量的数据,以便进行数据分析、机器学习等工作。   数据湖通常采用分布式计......
  • git仓库新建流程
    前排提醒:本文仅针对git新手,因此部分表述可能会略显不妥,git老手请自行忽略。创建远程仓库这一步各个网站各有不同,故不作过多介绍。但是需要注意,除非你准备创建一个全新的项目,否则不要勾选initwithreadme等类似选项,确保创建的是空仓库。待远程仓库创建完成后,你可能有以下几......
  • SHELL编程
    Shell是一种用户与操作系统内核进行交互的界面。它是命令行解释器,用户通过输入命令,Shell解释并执行这些命令,从而操作系统中的各种功能得以实现。脚本需要以#!/bin/bash开头,并赋予执行权限脚本的执行方式:赋予脚本执行权限chmodu+xhello.sh,然后通过相对路径./hello.sh或通......
  • stm32配合xshell串口输入
    前言通过xshell对stm32f103c8t6芯片进行串口调试。最近发现xshell也可以进行串口调试,但是在数据的输入上会有一些问题。因为正常的串口调试助手都是统一输入,直接发送,但是xshell不同,正常情况下是字符逐一输入的。所以在进行串口调试时,需要逐个字符分析计算,最后统一处理。用xsh......
  • Linux-Shell-编程训练营-全-
    LinuxShell编程训练营(全)原文:zh.annas-archive.org/md5/65C572CE82539328A9B0D1458096FD51译者:飞龙协议:CCBY-NC-SA4.0前言在LinuxShellScriptingBootcamp中,您将首先学习脚本创建的基础知识。您将学习如何验证参数,以及如何检查文件的存在。接着,您将熟悉Linux系统......
  • shell脚本-正则表达式与文本处理器
    一、正则表达式1.正则表达式概述正则表达式REGEXP(RegularExpressions)由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符......
  • shell 语法简记
    shellexpr运算在Shell脚本中,[expr](){"sa":"re_dqa_zy","icon":1}命令用于进行数学运算和字符串操作。以下是一些使用expr进行运算的示例:12整数运算:加法:expr10+10 返回20减法:expr1500-900 返回600乘法:expr30*3 返回90除法:expr30......
  • 阿里P3C-PMD配合Gitlab做编码规范检查
    1.Linux安装的Gitlab参考这篇博文:Gitlab+P3C-PMD1.1P3C-PMD插件下载并打jar包下载地址本地文件:p3c-master.zip本地jar包:p3c-pmd-2.1.1-jar-with-dependencies.jar直接下载zip包,然后解压,进入p3c-pmd目录,cmd命令,执行如下mvn命令,编译Kotlin代码mvncleankotlin:compilep......
  • shell函数和数组
    函数定义函数##第一种:简单常用函数名(){脚本(命令集合)}##第二种:function函数名{脚本内容(命令集合)}##第三种function函数名(){脚本(命令集合)}函数使用#!/bin/bashnum(){##num是定义的函数名称a=66echo${a}}num##这里的num是调用上面的num函数......
  • gitlab备份
    gitlab备份cronteb-e配置:02***/root/gitlab.sh03***/var/opt/gitlab/backups/gitlabbak.shgitlab.sh脚本(本机备份)#!/bin/bash/opt/gitlab/bin/gitlab-rakegitlab:backup:createCRON=1 gitlabbak.sh脚本,把备份复制到192.168.0.168设备上进行异地备份(两台设备......