Gitlab自动化相关脚本

@TOC](Gitlab自动化相关脚本)

本文演示了Gitlab如何自动上传SSH Key、如何clone代码免提示以及自动下载Gitlab上的文件

1.基础信息

  • Gitlab服务器地址:192.168.1.100
  • 创建的Personal Access Tokens: vvRkXLXZF9PhtoSqGnbJ

2.自动上传SSH Key

bash 复制代码
# 确保删除 .ssh 目录中的文件时没有无关数据影响
rm -rf /root/.ssh/*

# 生成新的 SSH 密钥
ssh-keygen -t ed25519 -N '' -f /root/.ssh/id_ed25519 -C "aiping.song@vastaitech.com" -q

# 读取公钥内容
KEY=$(cat /root/.ssh/id_ed25519.pub)

# 构建 JSON 字符串
json_string=$(cat <<EOF
{
  "title": "My Key",
  "key": "$KEY"
}
EOF
)

# 使用 curl 发出 POST 请求
curl --request POST "http://192.168.1.100/api/v4/user/keys" \
  --header "PRIVATE-TOKEN: vvRkXLXZF9PhtoSqGnbJ" \
  --header "Content-Type: application/json" \
  --data "$json_string"

3.clone代码免提示

bash 复制代码
GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git clone git@192.168.1.100:group/proj.git
cd /home/proj
git submodule update --init

4.自动下载Gitlab上的文件

bash 复制代码
curl --header 'Private-Token:vvRkXLXZF9PhtoSqGnbJ' \
	 --output yourfile \
	 "http://192.168.1.100/api/v4/projects/<Project ID>/repository/files/<文件路径>/raw?ref=<分支名>"
  • 文件路径中的/用%2F代替,比如:python/demo.txt 修改为 python%2Fdemo.txt
相关推荐
倔强的石头1061 分钟前
【Linux指南】Linux快捷键与系统实用技巧
linux·运维·服务器
番茄地瓜3 分钟前
Linux 配置静态 IP 步骤
linux·运维·服务器
.千余1 小时前
【Linux】 传输层协议UDP:从端口号到传输机制
linux·运维·udp
囚~徒~2 小时前
轻量化的虚拟机
linux·运维·服务器
SteveSenna2 小时前
Ubuntu 20.04 安装 Isaac Sim 4.5 + Isaac Lab
linux·运维·服务器
开开心心就好2 小时前
支持多显示器的Windows高效分屏工具
运维·python·科技·游戏·计算机外设·ocr·powerpoint
工业机器人销售服务3 小时前
伯朗特颗粒原料自动上料转运,无尘输送,杜绝原料粉尘污染颗粒原料产线的粉尘问题,源头不在“输送”而在“接口
机器人·自动化
lizhihai_993 小时前
股市学习心得-A股服务器/算力服务器龙头
大数据·运维·服务器·人工智能·科技·学习
鼎讯信通3 小时前
守护风电场 “无线神经”:LN-090A 宽频高速手持式频谱分析仪
运维·信息与通信
超级赛博搬砖工3 小时前
静态网页内容与动态网页内容:网页抓取指南
运维·服务器