文章声明:此文基于木子实操撰写
生产环境:Rocky Linux release 8.3, gitlab-ce-13.9.4-ce, Python 3.6.8
问题关键字:Python,Gitlab API,Python对接Gitlab API,Python批量设置Gitlab镜像仓库
前述
最近几天一直没有发Rocky Linux相关基础技术文章,主要在于木子最近迷上了Golang,事情的起因在于之前写了一篇关于《在Rocky Linux 8.3 RC1上安装GitLab实现代码仓库同步容灾》,有博友反馈公司有上千个仓库,如果需要一个一个去设置镜像仓库,势必会干晕一批人,于是就想着写一个批量设置Gitlab镜像仓库的脚本,写完跑了一遍用时11分多钟,太久了…,之前一直听说Golang很快,抱着学习的态度,试着用Golang重写了一遍(如果刚开始一直写弱类型语言,第一次开始写强类型语言,会比较痛苦,木子也是第一次写Golang @[email protected]),同样的实现方式,发现在Golang下执行只需要30多秒,瞬间秒杀一切。本着以练代学的精神,于是开始使用Golang来实现一套相对完善的Gitlab镜像仓库同步功能,其中包括:创建组、创建仓库、同步组、同步仓库、设置镜像仓库等功能。这也是为什么最近木子一直没有更新博文的原因。
来一个 Golang & Python 速度对比
1 | # Golang |
Python代码实现
以下Python脚本仅仅实现设置镜像仓库功能,适用于第一次批量设置镜像仓库。
1 | #! /usr/bin/env python3 |
参考文献
[1] Gitlab获取项目地址API: https://docs.gitlab.com/ee/api/projects.html
[2] Gitlab仓库镜像配置API: https://docs.gitlab.com/ee/api/remote_mirrors.html#project-remote-mirrors-api
下篇预告:基于Rocky Linux 8.3 RC1搭建Rsync冷备容灾服务器,如果您有任何想学习了解的技术,欢迎在下方留言,木子将根据需求输出对应基础技术博文。