GitLab API使用小结

背景描述

需求描述:

最近因为工作上的需求,需要对GitLab进行大批量的操作,又因为服务器不在境内,所以所有的操作都需要连接VPN来进行FQ访问。目前大概有6000多个合并请求,需要审核后处理,需要在指定项目,指定筛选条件后,获取到的清单列表,然后按照公司要求的分支策略去操作。由于公司有自己的分支策略,每个分支和受保护的分支都有大批量的Commit Diff.

经高人指点:

让我直接调用API试试。原来可以直接调用服务器的API来直接对GitLab服务器进行访问,避免页面中无效的操作,如每次打开Merge Request的时候就要比对差异等。

好处:

调用API可以完全用命令操作,减少了Web端无用的功能,大大提高了服务器的访问效率。

说明:

首先我想说的是,我这里只是根据我的使用过程简单的提一下,不要过度依赖此篇文章,因为我提到的也只是冰山一角,文中所有的案例都来自于官方API文档。(文档没有中文版本)

GitLab API文档地址:https://docs.gitlab.com/ee/api/README.html

Merge Request 操作API:https://docs.gitlab.com/ee/api/merge_requests.html

详细说明

具体使用过程

  1. 在GitLab中生成个人的Token。(操作的时候要使用Token来做令牌,所以生成Token的账号需要有操作此项目的权限)。
  2. 查看我想用的功能说明和参数说明,调用对应的API。
  3. 在命令行 将编写好的命令执行。

教程说明

API文档每个功能都有详细的说明。功能描述,案例说明,参数说明。

  1. API功能描述和举例说明:

  2. API功能对应的参数清单:

  3. 获取到的结果截图

案例

我这里拿一个需求来举例说明:我想要获取GitLab中A项目中,所有的指给我的任务,Title中有指定字符标记的,又或者是指定作者的。

在功能里的获取所有的合并请求叫做:list-merge-requests

用到的参数如下:

target_branch=master:目标分支为master分支的

scope=assigned_to_me:指派给自己的

search=xxx : 搜Title和Description 中的关键字的

state=opened:状态为开放的

author_id=281:指定作者ID的

汇总如下:
curl --request GET --header "PRIVATE-TOKEN: 8zQsjXXXQsiu8" http://10.X.XXX.XX/api/v4/projects/37/merge_requests?scope=assigned_to_me&search=NCSCMPT&target_branch=master&state=opened

结果就是如下所示的JSON中的一个,其中信息已经打马赛克。可以看到所有的信息。

然后,各位就根据自己的需求去研究API文档吧。

我用到的功能有:

获取指定条件的清单

删除MR请求

发起MR请求

这几个简单的日常批量操作,极大的增加了工作效率。

GitLab API使用小结的更多相关文章

  1. 教你怎么调用Gitlab API

    1.生成Personal Access Tokens 选择右上角用户信息setting—>Access Tokens 2.常用Gitlab API #获取所有的项目信息 #private_tok ...

  2. GitLab: API is not accessibl

    git push -u origin masterGitLab: API is not accessiblefatal: Could not read from remote repository. ...

  3. Could not find modernizr-2.6.2 in any of the sources GitLab: API is not accessible

    Could not find modernizr-2.6.2 in any of the sources GitLab: API is not accessible bundle exec rake ...

  4. docker gitlab and gitlab api

    https://docs.gitlab.com/ee/api/repositories.html curl --header "PRIVATE-TOKEN: fxhDXPRJAowCouXE ...

  5. 【转】教你怎么调用Gitlab API

    官方文档: https://docs.gitlab.com/ce/api/ https://docs.gitlab.com/ee/api/branches.html#list-repository-b ...

  6. [技术博客]大闸蟹的技术博客,通过gitlab api进行用户批量创建

    技术博客--通过gitlab api批量注册用户 gitlab登录界面本身提供了register功能,但需要手工一个个添加,对于一次性会添加整个班级的学生的软工平台来说并不科学合理.使用gitlab ...

  7. gitlab api 使用

    api文档:https://docs.gitlab.com/ee/api/projects.html#project-visibility-level 1.项目查询 http://127.0.0.1: ...

  8. gitlab Api接口使用

    官方文档 https://docs.gitlab.com/search/?q=api&idx=gitlab&p=1 示例:获取每个项目下的用户信息 #!/usr/bin/env pyt ...

  9. 高德地图JS API 开发小结

    项目中有一块功能要用到高德地图,所以,想把编码小结一下. 首先是地图的初始化 var map = new AMap.Map("mapDiv", {                  ...

随机推荐

  1. 使用Swing的GUI编程

    Swing AWT概述 AWT:抽象窗口工具包,提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的图形用户界面的基本工具 Swing以AWT为基础的,尽管Swing消除了 ...

  2. 简单socket服务器编程

    package socket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; ...

  3. 了解promise、promise对象

    Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象. 所谓Pr ...

  4. Nginx请求连接限制

    目录 Nginx的请求限制 HTTP协议的连接与请求 连接限制 配置示例 做个演示: 请求限制 配置示例 基本指令 limit_req_zone limit_req zone 做个演示: Nginx的 ...

  5. C# 读取txt文件生成Word文档

    本文将以C#程序代码为例介绍如何来读取txt文件中的内容,生成Word文档.在编辑代码前,可参考如下代码环境进行配置: Visual Studio 2017 .Net Framework 4.6.1 ...

  6. django之集成第三方支付平台PaysAPI与百度云视频点播服务接入

    PaysAPI直接查看接口文档:https://www.paysapi.com/docindex,比较简单 百度云视频点播服务接入: 1. 准备工作:百度云的示例:http://cyberplayer ...

  7. java代码实现调用短信接口,发送短信验证。

    一.代码示例 package com.aaa.zxf.login; import org.apache.commons.httpclient.HttpClient; import org.apache ...

  8. springboot 的运行原理?

    一.@SpringbootApplicaion 是一个组合注解?  在注解中点击查看. 作用:实现自动配置. /* * springboot的运行原理 1. @SpringbootApplicatio ...

  9. C++学习Day 1

    c++的函数需要声明才能再写他的定义,声明可以写多次,如果执行在main之前可以不写,全写不会犯错,现在看好像c++的函数定义里没有out,也没有变量的public和private(后面有再改) 声明 ...

  10. Android的基本资源引用(字符串、颜色、尺寸、数组)【转】

    感谢大佬:https://blog.csdn.net/wenge1477/article/details/81295763 Android的基本资源引用(字符串.颜色.尺寸.数组)[转] 一.Andr ...