【无标题】

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")
相关推荐
智数研析社40 分钟前
9120 部 TMDb 高分电影数据集 | 7 列全维度指标 (评分 / 热度 / 剧情)+API 权威源 | 电影趋势分析 / 推荐系统 / NLP 建模用
大数据·人工智能·python·深度学习·数据分析·数据集·数据清洗
潘达斯奈基~1 小时前
《大数据之路1》笔记2:数据模型
大数据·笔记
寻星探路1 小时前
数据库造神计划第六天---增删改查(CRUD)(2)
java·大数据·数据库
翰林小院3 小时前
【大数据专栏】流式处理框架-Apache Fink
大数据·flink
孟意昶4 小时前
Spark专题-第一部分:Spark 核心概述(2)-Spark 应用核心组件剖析
大数据·spark·big data
一路向北North4 小时前
lucene渲染未命中最匹配的关键词和内容
搜索引擎·全文检索·lucene
IT学长编程5 小时前
计算机毕业设计 基于Hadoop的健康饮食推荐系统的设计与实现 Java 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
java·大数据·hadoop·毕业设计·课程设计·推荐算法·毕业论文
AAA修煤气灶刘哥5 小时前
Kafka 入门不踩坑!从概念到搭环境,后端 er 看完就能用
大数据·后端·kafka
在未来等你7 小时前
Elasticsearch面试精讲 Day 18:内存管理与JVM调优
大数据·分布式·elasticsearch·搜索引擎·面试
智海观潮8 小时前
Spark SQL | 目前Spark社区最活跃的组件之一
大数据·spark