@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