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. 超详细的编码实战,让你的springboot应用识别图片中的行人、汽车、狗子、喵星人(JavaCV+YOLO4)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. [.Net]使用ABP 数据库迁移migration遇到的坑及解决方案

    ​ 问题:在使用Update-Database时,突然出现"数据库中已存在名为 'XXX' 的对象". 检查发现__EFMigrationsHistory表中的MigrationI ...

  3. MATLAB中拟合算法刚入门

    %%%1.拟合问题:(做预测,主要使用的范围是样本比较小,拟合效果会好,样本比较多,拟合的效果就不是很好) 1.应用预测的场景:已经知道10年的样本,预测第11年以内的数据 2.用拟合的到关系式:样本 ...

  4. 02-JS中的数据类型及类型转换

    02-JS中的数据类型及类型转换 一.数据类型 JS中的值,无论是字面量还是变量,都有明确的类型. (一)概述 1.基本类型5种 number 数字类型 string 字符串类型 boolean 布尔 ...

  5. 字符串自实现(一)(mystrcpy,mystrcat,mystrcmp)

    char* mystrcpy(char* str_one,const char* str_two) { char* tmp = str_one; while (*str_one++ = *str_tw ...

  6. go get失败解决办法

    go get时由于防火墙的原因,会导致失败.目前可以通过修改GOPROXY的方法解决该问题. 无论是在win下还是linux,macos下,只需要将环境变量GOPROXY设置成https://gopr ...

  7. limit概述

    5.limit 5.1.limit是将查询结果集的一部分取出来,通常使用在分页查询中 分页作用是为了提高用户体验,可以一页一页翻页看 5.2.limit用法:(非常重要) 完整用法:limit sta ...

  8. Mac系统之U盘重装(降级)

    U盘重装mac系统步骤如下 1. 将Mac系统U盘插上电脑,按下Mac开机键后,摁住"option"键不放,稍等几秒会出现启动盘选择界面,选择"安装 macOS" ...

  9. Vue+webpack配置实现多页面应用开发

    为什么要配置多页面开发? · 由于单页面应用不利于SEO,对于某些资讯类网站不够友好,而多页面则能够更优的解决此问题. · 传统的多页面开发模式(如java的jsp等) 前后端耦合性大,开发效率低,代 ...

  10. ApacheCN Angular 译文集 20211114 更新

    Angular 专家级编程 零.前言 一.架构概述和在 Angular 中构建简单应用 二.将 AngularJS 应用迁移到 Angular 应用 三.使用 Angular CLI 生成具有最佳实践 ...