一、获取个人Token


注意:该token只会展示一次,注意保存。

二、使用脚本

package org.example.gitlab;import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.springframework.util.StreamUtils;import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Iterator;/*** gitlab 一次性克隆多个项目脚本*/
public class Main {/*** gitlab用户名*/private static final String USERNAME = "username";/*** gitlab密码*/private static final String PASSWORD = "password";/*** 配置克隆到的地址*/private static final String TO_DIR = "/Users/xxx/xxx/xxx/xxx";/*** gitlab地址*/private static final String GITLAB_URL = "http://xxx:xxx";/*** 你的private token*/private static final String GITLAB_PRIVATE_TOKEN = "xxx";public static void main(String[] args) throws IOException {//获取项目的jsonJSONArray projects = getProjectJson();//指定下载后输出的地址File execDir = new File(TO_DIR);for (Iterator iterator = projects.iterator(); iterator.hasNext(); ) {JSONObject prj = (JSONObject) iterator.next();//项目地址String httpUrlToRepo = prj.getString("http_url_to_repo");StringBuilder builder = new StringBuilder(httpUrlToRepo);String usernameAndPassword = USERNAME + ":" + PASSWORD + "@";builder.insert(7, usernameAndPassword);httpUrlToRepo = builder.toString();//项目路径String pathWithNamespace = prj.getString("path_with_namespace");gitClone(httpUrlToRepo, pathWithNamespace, execDir);}}private static JSONArray getProjectJson() throws IOException {//这里的per_page 是指一页返回多少个项目URL url = new URL(String.format("%s/api/v4/projects?per_page=100", GITLAB_URL));HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setRequestProperty("PRIVATE-TOKEN", GITLAB_PRIVATE_TOKEN);BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));StringBuilder responseBuilder = new StringBuilder();String line;while ((line = reader.readLine()) != null) {responseBuilder.append(line);}reader.close();System.out.println("res:" + responseBuilder);return JSONObject.parseArray(responseBuilder.toString());}static void gitClone(String httpUrlToRepo, String pathWithNamespace, File execDir) {String command = String.format("git clone %s %s", httpUrlToRepo, pathWithNamespace);try {System.out.println("===========start==================");System.out.println("start exec command : " + command);//执行命令行Process exec = Runtime.getRuntime().exec(command, null, execDir);exec.waitFor();String successResult = StreamUtils.copyToString(exec.getInputStream(), Charset.forName("UTF-8"));String errorResult = StreamUtils.copyToString(exec.getErrorStream(), Charset.forName("UTF-8"));System.out.println("successResult: " + successResult);System.out.println("errorResult: " + errorResult);System.out.println("============end================");} catch (Exception e) {e.printStackTrace();}}
}

配置项:

  • USERNAME:GitLab用户名
  • PASSWORD:GitLab密码
  • TO_DIR:代码需要克隆到的路径
  • GITLAB_URL:GitLab地址及端口
  • GITLAB_PRIVATE_TOKEN:第一步获取都的token

配置完后,IDE中运行即可。

GitLab一次性下载多个项目相关推荐

  1. Asp.NET中如何一次性下载多个文件

    在ASP.NET中,我们可以很方便的下载单个文件,当需要一次性下载多个文件的时候,如果提示用户一次一次保存的话,会导致用户体验特别的不好.我这里找到一种比较合理的解决方案,就是先把要下载的所有文件打包 ...

  2. 怎么从gitlab上下载别人的代码

    提要 当需要从gitlab上下载别人的代码时,这里简述一下如何操作. 方法 按如下的步骤来实现: 1.在自己的电脑脑上新建一个空文件夹,文件夹的名称自己取. 2.在新建的文件夹上右键,选择git ba ...

  3. gitlab批量下载projects

    gitlab批量下载projects 参考文档 API 获取所有组 获取所有项目 根据项目获取组ID 根据组查询项目 批量下载projects使用说明 批量获取项目名称 进入项目中批量提交分支 其他方 ...

  4. 一次性解决idea新建项目src文件夹无法创建Java class文件的问题!

    一次性解决idea新建项目src文件夹无法创建Java class文件的问题! 再pom文件中添加jar 后发现java已经不是黑色文件了 出现这种情况是因为我们用idea创建sping项目时会自动把 ...

  5. Mac版R语言(四):pacman包——在R语言工程中一次性下载安装、导入多个包的方法

    微信公众号:R语言数据分析与实践 pacman包 pacman包是R包集群管理的工具,能够减少大量packages操作相关的键入.依托函数library( )为基础,pacman包能够在部署R工程时极 ...

  6. 使用Docker安装Gitlab,Jenkins,Tomcat搭建流水线项目环境,实现DevOps自动化步骤,很详细

    使用Docker安装Gitlab,Jenkins,Tomcat搭建流水线项目,实现DevOps自动化 写在前头,入职公司不久,发现公司都是用的Jenkins来实现自动化项目部署,十分方便,但作为底层开 ...

  7. Gitlab的下载、安装以及在IDEA中的集成使用

    Gitlab的下载.安装以及在IDEA中的集成使用 Gitlab简介 官网地址以及下载 GItlab安装 服务器准备-克隆虚拟机 安装Gitlab依赖 下载/安装Gitlab 登录Gitlab 初始化 ...

  8. VS2017一次性运行多个项目的方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_41152432/article/ ...

  9. Gitlab自动触发Jenkins构建项目

    Gitlab自动触发Jenkins构建项目 一.前提 Gitlab已安装配置好. Jenkins已安装Gitlab plugin. 二.配置jenkins中Job 1.勾选触发器下的gitlab触发器 ...

最新文章

  1. R语言ggplot2可视化:拟合二次曲线(quadratic curve)并使用ggplot2进行可视化、可视化两个响应变量和一个预测变量的二次曲线
  2. Matlab篇(三)MATLAB中conj的用法
  3. 对require和import的认识
  4. 用 GDB 调试Linux程序及有用技巧
  5. 从头学习DirectDraw
  6. 人人都能学会的python编程教程1:第一行代码
  7. 使用 CSS3 实现 3D 图片滑块效果
  8. 语言专升本必背代码_广东省 2021 年普通高等学校专升本招生学科门类与专业基础课对应表...
  9. 学习成功:中学生成就梦想的15堂必修课
  10. 计算广告学(Computational Advertising)学习资料
  11. 中西结合口腔科疾病 100255
  12. 寂寞情来情去——忆纳兰词
  13. script加密解密工具下载
  14. 小沙弥密码箱V1.0
  15. mediasoup 管道通信类UnixStreamSocket分析
  16. 红孩儿编辑器的开发 1 字体库的生成过程
  17. 2021年中国鸡尾酒杯市场趋势报告、技术动态创新及2027年市场预测
  18. 想想也有五年多了(胡紫薇博客)
  19. mac删除分区并合并分区
  20. 【排序算法】归并排序(C语言)

热门文章

  1. java怎么转换HH24miss_oracle数据库中存的格式是YYYYMMDDHHmmss的字符串,怎么转换成YYYY-MM-DD HH:mm:ss...
  2. 拉线位移传感器的原理和选型注意事项
  3. Godot 4 源码分析 - 初探
  4. linux LVM分区 查看dm设备
  5. postgresql解析json
  6. C#SendMessage用法
  7. android 声音池,Android使用SoundPool实现播放音效
  8. 实用贴,HDTV的4个基本元素
  9. 如何显示一副超大图像
  10. Windows Terminal 安装