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
相关推荐
Joren的学习记录1 天前
【Linux运维大神系列】Kubernetes详解3(kubeadm部署k8s1.23高可用集群)
linux·运维·kubernetes
眠りたいです1 天前
Docker核心技术和实现原理第二部分:docker镜像与网络原理
运维·网络·docker·容器
XiaoHu02071 天前
Linux多线程(详细全解)
linux·运维·服务器·开发语言·c++·git
Y淑滢潇潇1 天前
RHCE Day 10 流程控制之条件语句和循环结构
linux·运维·rhce
GAOJ_K1 天前
丝杆模组精度下降的预警信号
人工智能·科技·机器人·自动化·制造
gaize12131 天前
服务器怎么选择与配置才能满足企业需求?
运维·服务器·架构
焦耳热科技前沿1 天前
中科大EMA:3秒焦耳热一步合成双功能催化剂用于甲醇氧化协同高效制氢
大数据·人工智能·自动化·能源·材料工程
鸠摩智首席音效师1 天前
如何安装和配置 Nginx 反向代理服务器 ?
运维·nginx
Shanxun Liao1 天前
CentOS 7.9 根分区 / 已经 100% 用满隐藏占用解决办法
linux·运维·centos
FOREVER-Q1 天前
Windows 下通过 SSH 替代 Gitee OAuth Token 推送配置指南
运维·服务器