Python批量克隆GitLAB的代码仓库

  1. 安装依赖
pip install python-gitlab
# 官方库文档:https://python-gitlab.readthedocs.io/
# 版本
# python 3.9.6
# python-gitlab 6.0.0
  1. 获取Access Token

    1. 第一步
      Access Token
    2. 第二步
      添加新的令牌
    3. 第三步
      第三步
    4. 第四步
      第四步
  2. 代码

import gitlab
import sys
import os


# 连接到gitlab,获取所有的项目
def get_projects(url, token):
    print("获取项目中...")
    try:
        # 连接到GitLab服务器
        gl = gitlab.Gitlab(url, private_token=token)
        # 获取所有项目(仓库)
        return gl.projects.list(all=True)
    except Exception as err:
        print("发生错误,错误信息:", err)
        # 发生错误退出程序
        sys.exit(1)


def save_project(pjt, directory):
    print("开始处理:", pjt.name)
    # 获取clone地址
    git_clone_path = pjt.http_url_to_repo.replace("://", "://oauth2:" + gitlab_token + "@")
    # clone命令
    git_clone_command = "git clone " + git_clone_path
    # 创建目录
    save_project_path = os.path.join(directory, pjt.name_with_namespace.replace(" ", ""))
    # 创建目录
    os.makedirs(save_project_path)
    # 执行命令
    print("正在clone:", git_clone_command)
    os.system(f"{git_clone_command} {save_project_path}")


if __name__ == '__main__':
    # GitLab的URL
    gitlab_url = "https://xxxxxxxxx/"
    # 访问令牌(Personal Access Token)
    gitlab_token = "xxxxxxxxxxxx"
    # 文件存放目录
    save_base_path = "E:\\xxx\\xx"

    projects_list = get_projects(gitlab_url, gitlab_token)
    for project in projects_list:
        save_project(project, save_base_path)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KjPrime

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值