@TOC](Gitlab自动化相关脚本)
本文演示了Gitlab如何自动上传SSH Key、如何clone代码免提示以及自动下载Gitlab上的文件
1.基础信息
- Gitlab服务器地址:192.168.1.100
- 创建的Personal Access Tokens:
vvRkXLXZF9PhtoSqGnbJ
2.自动上传SSH Key
# 确保删除 .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代码免提示
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上的文件
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