• GitLab API使用小结


    GitLab API使用小结

    背景描述

    需求描述:

    最近因为工作上的需求,需要对GitLab进行大批量的操作,又因为服务器不在境内,所以所有的操作都需要连接VPN来进行翻墙访问。目前大概有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

    用到的参数如下:

    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请求

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

  • 相关阅读:
    node.js 实际应用记录
    常用数组操作方法 包含es6语法
    JavaScript获取获取屏幕、浏览器窗口 ,浏览器,网页高度、宽度方法汇总
    vue-cli脚手架发布项目进行build压缩时遇到的问题
    路由传参
    vue 点击新的路由<router-link to=‘’></router-link>时 同时嵌套一个新网页
    vue-cli 里 利用mockjs 实现模拟后台数据并成功请求
    vue2.0 实现click点击当前li,动态切换class
    vue 动态获取浏览器内容高度并赋值给元素
    在vue中给列表中的奇数行添加class
  • 原文地址:https://www.cnblogs.com/bigbaby/p/13998921.html
Copyright © 2020-2023  润新知