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 "[email protected]" -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 [email protected]: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
相关推荐
红肤色32 分钟前
【网络安全基础】CentOS 7超详细安装教程(含镜像)
linux·运维·服务器·安全·网络安全·centos
程序猿(雷霆之王)1 小时前
Linux——冯 • 诺依曼体系结构&操作系统初识
linux·运维·服务器
宁zz1 天前
乌班图安装jenkins
运维·jenkins
工业通讯探索者1 天前
ProfiNet转CANopen协议转换网关驱动新能源汽车生产线多轴同步控制
自动化·工业物联网·协议转换网关·网关模块·总线协议
大丈夫立于天地间1 天前
ISIS协议中的数据库同步
运维·网络·信息与通信
rainFFrain1 天前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
小马哥编程1 天前
【软件测试】自动化测试结合 CI/CD有哪些方案
自动化·集成测试·测试覆盖率
@郭小茶1 天前
docker-compose方式部署docker项目
运维·docker·容器
自由鬼1 天前
开源虚拟化管理平台Proxmox VE部署超融合
linux·运维·服务器·开源·虚拟化·pve
weixin_457885821 天前
JavaScript智能对话机器人——企业知识库自动化
开发语言·javascript·自动化