【无标题】

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")
相关推荐
e6zzseo33 分钟前
独立站的优势和劣势和运营技巧
大数据·人工智能
wudl55664 小时前
flink 1.20 物化表(Materialized Tables)
大数据·flink·linq
InfiSight智睿视界6 小时前
AI 技术助力汽车美容行业实现精细化运营管理
大数据·人工智能
熙客7 小时前
搜索引擎数据库介绍
搜索引擎
8K超高清7 小时前
高校巡展:中国传媒大学+河北传媒学院
大数据·运维·网络·人工智能·传媒
amhjdx8 小时前
政策东风下:卓玛儿童级健康腻子引领行业升级
大数据
TDengine (老段)8 小时前
TDengine 字符串函数 CONCAT_WS 用户手册
android·大数据·数据库·时序数据库·tdengine·涛思数据
TTGGGFF8 小时前
人工智能:大语言模型或为死胡同?拆解AI发展的底层逻辑、争议与未来方向
大数据·人工智能·语言模型
杂家10 小时前
Hadoop完全分布式部署(超详细)
大数据·hadoop·分布式
BD_Marathon10 小时前
【Hadoop】hadoop3.3.1完全分布式配置
大数据·hadoop·分布式