GitLab API使用小结

GitLab API使用小结

背景描述#

需求描述:#

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

经高人指点:#

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

image-20201118112937097

好处:#

调用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功能描述和举例说明:

    image-20201118113120979

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

    image-20201118113156824

  3. 获取到的结果截图

    image-20201118113224011

案例#

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

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

用到的参数如下:

Copy
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中的一个,其中信息已经打马赛克。可以看到所有的信息。

image-20201118113338301

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

我用到的功能有:

获取指定条件的清单

删除MR请求

发起MR请求

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

posted @   dawa大娃bigbaby  阅读(1233)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示
CONTENTS