【无标题】

python 实现gitlab代码批量下载

环境准备:

1、电脑上安装git环境

2、根据实际情况修改下面三个参数

仓库前缀

GIT_PROTOCOL = "http://"

仓库地址

GIT_HOST = "git.xxx.com.cn"

仓库Token、

GIT_ACCESS_TOKEN = "Uxxxx"

认证信息

3、per_page=200 需要根据实际修改,默认20条

复制代码
import requests
import json
import subprocess

# 仓库前缀
GIT_PROTOCOL = "http://"
# 仓库地址
GIT_HOST = "git.xxx.com.cn"
# 仓库Token、
GIT_ACCESS_TOKEN = "Uxxxx"
# 认证信息
GIT_AUTH = f"oauth2:{GIT_ACCESS_TOKEN}"

# 获取的json文件名称
JSON_FILE = "data.json"

# 获取所有的仓库
headers = {
    "PRIVATE-TOKEN": GIT_ACCESS_TOKEN,
    "Content-Type": "application/json"
}
url = f"{GIT_PROTOCOL}{GIT_HOST}/api/v4/projects?per_page=200"
response = requests.get(url, headers=headers)

# 检查响应状态码
if response.status_code == 200:
    with open(JSON_FILE, 'w') as f:
        json.dump(response.json(), f)
    
    # json解析
    with open(JSON_FILE, 'r') as f:
        data = json.load(f)
        for obj in data:
            # 拼接 clone 地址信息
            clone_url = f"{GIT_PROTOCOL}{GIT_AUTH}@{GIT_HOST}/{obj['path_with_namespace']}"
            # 打印信息
            print(clone_url)
            # git clone
            subprocess.run(['git', 'clone', clone_url])
else:
    print(f"Failed to fetch projects, status code: {response.status_code}")

print("handle end")
相关推荐
@insist1234 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
天辛大师4 小时前
AI助力旅游扩大化,五一旅游公园通游年票普惠研究
大数据·启发式算法·旅游
WordPress学习笔记5 小时前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
数智化精益手记局6 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
Elastic 中国社区官方博客7 小时前
使用 Observability Migration Platform 将 Datadog 和 Grafana 的仪表板与告警迁移到 Kibana
大数据·elasticsearch·搜索引擎·信息可视化·全文检索·grafana·datalog
jkyy20148 小时前
AI运动数字化:以技术重塑场景,健康有益赋能全域运动健康管理
大数据·人工智能·健康医疗
金融小师妹8 小时前
4月30日多因子共振节点:鲍威尔“收官效应”与权力结构重塑的预期重构
大数据·人工智能·重构·逻辑回归
2601_949925188 小时前
AI Agent如何重构跨境物流的决策?
大数据·人工智能·重构·ai agent·geo优化·物流科技
xiaoduo AI8 小时前
客服机器人问题解决率怎么统计?Agent系统自动判断是否解决,比人工回访准?
大数据·人工智能·机器人
小五兄弟9 小时前
YouTube 肖像检测扩展背后:短剧出海版权保护的技术实现与实战策略
大数据·人工智能