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
相关推荐
李子圆圆13 小时前
电力专用多功能微气象监测装置在电网安全运维中的核心价值是什么?
运维·安全
花开富贵贼富贵13 小时前
MySQL 核心高级特性
运维·数据库·mysql
小宁爱Python14 小时前
Windows Docker Desktop占用C盘空间过大解决办法集合
运维·docker·容器
恒创科技HK14 小时前
如何选30G、60G、100G的香港高防服务器?
运维·服务器
wanhengidc14 小时前
云手机 手游专用虚拟手机
运维·服务器·安全·游戏·智能手机
檀越剑指大厂15 小时前
【Linux系列】Vim 中删除当前光标到行尾
linux·运维·vim
菠萝吹雪ing15 小时前
GUI 自动化与接口自动化:概念、差异与协同落地
运维·笔记·程序人生·自动化·接口测试·gui测试
周之鸥16 小时前
从零部署 Astro 静态网站到云服务器(含 HTTPS 一键配置)
运维·服务器·ubuntu·http·https·astro
noravinsc16 小时前
centos如何做的时间同步
linux·运维·centos
远创智控研发五部16 小时前
Modbus TCP转EtherCAT通讯模块实现设备状态零延迟交互
自动化·数据采集·工业自动化·网关模块·ethercat通讯