【无标题】

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")
相关推荐
神秘打工猴38 分钟前
数据仓库为什么要分层
大数据·数据仓库·spark
Hard_pea41 分钟前
Spark 深入解析
大数据·分布式·spark
闯闯桑1 小时前
Scala 中的访问修饰符
大数据·开发语言·scala
后端小肥肠1 小时前
解锁DeepSpeek-R1大模型微调:从训练到部署,打造定制化AI会话系统
大数据·人工智能
说私域5 小时前
基于开源AI大模型的精准零售模式创新——融合AI智能名片与S2B2C商城小程序源码的“人工智能 + 线下零售”路径探索
人工智能·搜索引擎·小程序·开源·零售
24k小善10 小时前
flink集成tidb cdc
大数据·flink·tidb
郝开10 小时前
ElasticSearch 分词器介绍及测试:Standard(标准分词器)、English(英文分词器)、Chinese(中文分词器)、IK(IK 分词器)
elasticsearch·中文分词·ik·ik analyzer
kngines12 小时前
【实战ES】实战 Elasticsearch:快速上手与深度实践-3.2.3 案例:新闻搜索引擎的相关性优化
大数据·elasticsearch·搜索引擎
秦南北13 小时前
国内领先的宠物类电商代运营公司品融电商
大数据·人工智能·电商
problc14 小时前
Manus AI 全球首款通用型 Agent,中国制造
大数据·人工智能·制造