Skip to content

从Gitlab中一次性克隆你的所有项目

Published: at 01:41 PM

前言

大家在入职第一天会由上级给你开通了gitlab的权限,便需要开始clone有权限的项目。

在项目数少的情况下可以到项目的主页选择下载。 如果拥有的项目很多, 那么就可以需要用到脚本来获取所有的项目地址了。

思路

Gitlab REST API - GET all projects

参照以上的接口,可以获得项目数据。 返回的JSON格式可以再通过JSON工具来处理并获得其中的 http_url_to_repo 字段,这个字段是https的repo地址

准备工作

  1. private_token 请在 https://gitlab.example.com/-/profile/personal_access_tokens 创建
  2. curl
  3. jq

脚本

# 下载 json 处理脚本工具
brew install jq
# jq -r '.[].http_url_to_repo' 可以改为 jq -r '.[].ssh_url_to_repo' 看需要修改
curl "https://gitlab.example.com/api/v4/projects?access_token=<private_token>&per_page=100000" | jq -r '.[].http_url_to_repo' | awk '{print "git clone " $0}' > repos.txt
# 输出到 repos.txt 中 复制到命令行中下载
# 如果不下载jq 不好处理json格式,那就直接curl出来自己用工具处理
curl "https://gitlab.example.com/api/v4/projects?access_token=<private_token>&per_page=100000" > repo_raw.json