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
相关推荐
ruxshui10 分钟前
数据运维生产故障案例笔记
大数据·运维
三84416 分钟前
基本Linux命令总结
linux·运维·服务器
曦尧23 分钟前
Anthropic 开源 11 个知识工作插件:用 Markdown 文件把 Claude 变成岗位专家
ai·自动化
她叫我大水龙27 分钟前
nginx 编译指南:静态编译 + 动态编译
运维·nginx
ai_coder_ai30 分钟前
编写自动化脚本,在自己后端服务中使用云原生Baas服务进行编码和解码相关操作
数据库·云原生·自动化
元岳数字人小元30 分钟前
数字人系统源码:决定一体机长期运维稳定性的核心因素
运维·开源·人机交互·交互·源代码管理
田里的水稻37 分钟前
EP_局域网传输音视频的主流方案
运维·人工智能·机器人·音视频
运维大师1 小时前
【Linux运维极简教程】11-防火墙与安全加固
运维·安全
2601_954706491 小时前
算力上云革新移动终端:ARM 虚拟化云手机底层原理、API 自动化实战与 2026 选型全解
arm开发·智能手机·自动化
Faith_xzc2 小时前
Apache Doris 元数据运维深度解析:从架构原理到故障实战
大数据·运维·doris