【无标题】

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")
相关推荐
幽弥千月1 小时前
【ELK】容器化部署Elasticsearch1.14.3集群【亲测可用】
运维·elasticsearch·容器·自动化
ssxueyi2 小时前
Hadoop是什么?Hadoop介绍
大数据·hadoop
python风控模型2 小时前
深度解读:Top14金融顶刊
大数据
出发行进2 小时前
Maven的介绍以及安装,仓库的使用和在idea使用maven
java·大数据·数据分析·maven
代码欢乐豆3 小时前
NoSQL大数据存储技术测试(6)图数据库Neo4J
大数据·数据库·nosql
Elastic 中国社区官方博客3 小时前
Elasticsearch:使用 Open Crawler 和 semantic text 进行语义搜索
大数据·数据库·人工智能·爬虫·elasticsearch·搜索引擎·全文检索
B站计算机毕业设计超人4 小时前
计算机毕业设计Django+Tensorflow音乐推荐系统 音乐可视化 卷积神经网络CNN LSTM音乐情感分析 机器学习 深度学习 Flask
大数据·人工智能·python·机器学习·课程设计·数据可视化·推荐算法
白宇横流学长4 小时前
土地档案管理关系[源码+文档]
大数据·数据库
高工智能汽车4 小时前
汽车供应链 “剧变”开始,“智能感知潜在龙头”诞生
大数据·人工智能·汽车