版本管理之gitlab实践教程:基础篇(9)

时间:2024-04-03 12:49:06

版本管理之gitlab实践教程:基础篇(9)
gitlab提供了强大的API,几乎所有的在页面上进行的操作它都能通过API来实现。在这篇文章里,我们将会了解到gitlab的API能做什么以及怎么做,同样也会使用一个简单的例子来演示如何使用API来对用户进行管理。

Private Token

为了使用API,我们需要用到gitlab中对应account的private token。而private token的获取和重设则可通过profile settings -> account页面进行,如下图所示:
版本管理之gitlab实践教程:基础篇(9)

token是用户名/密码的替代,在gitlab中拥有某个帐户的token就会被认为此用户,类似你的信用卡卡密码的作用,保证token的安全性非常之重要。

API状态码和请求类型

使用gitlab的API,其返回结果可能是不同的状态编码。而Gitlab使用的状态编码基本与HTTP标准status code一致,详细信息如下:
版本管理之gitlab实践教程:基础篇(9)

gitlab的API的请求类型为如下所示:

版本管理之gitlab实践教程:基础篇(9)

用户查询

使用gitlab的API进行用户的查询,需要使用形如:api/API版本/API命令?secret_token=TOKEN的格式。至于查询用户信息,在本例中相关信息为:

项目 说明
API版本 v3
API命令 users
TOKEN 在前面已经确认,为AvLwU-bxXscdwaVfzkpo

执行之后,页面返回了gitlab中的用户的信息
版本管理之gitlab实践教程:基础篇(9)

更加详细的user相关的API使用,可参看:https://docs.gitlab.com/ce/api/users.html

API整体功能

我们举了一个例子,用来说明可以使用gitlab的API获取用户列表信息,这只是庞大的功能中非常小的一个,以下列出gitlab中API大体能够做到的事情。

用户管理

项番 说明
No.1 显示用户列表信息
No.2 对某一用户进行增删改查
No.3 列出某一个给定用户的SSH keys
No.4 对某一用户的SSH Key进行增改查

Session管理

项番 说明
No.1 使用email和密码取得私有Token

项目管理

项番 说明
No.1 列出所有项目
No.2 对某一项目进行增删查
No.3 获取项目事件
No.4 获取某一项目的所有成员列表
No.5 对某一成员进行增删改查
No.6 对项目的webhooks进行增删改查
No.7 获取所有分支信息
No.8 获取某一个分支信息
No.9 对分支进行保护操作或者取消保护操作

Project snippets

项番 说明
No.1 对project snippets进行增删改查

仓库管理

项番 说明
No.1 列出所有的tag
No.2 创建一个新的tag
No.3 创建一个raw类型的文件或者blob类型
No.4 比较分支/tag或者提交信息
No.5 列出所有的contributors

提交管理

项番 说明
No.1 列出某一仓库的所有提交信息
No.2 获得某一提交的详细信息
No.3 获得某次提交的差分信息

分支管理

项番 说明
No.1 对分支进行增删查以及保护或者取消保护的操作

Merge requests

项番 说明
No.1 列出所有的merge request信息
No.4 对merge request进行增改查以及accept和close的操作
No.5 获取某一merge request的所有comment

Issue管理

项番 说明
No.1 对issue进行增删改查

Group管理

项番 说明
No.1 对group进行增改查
No.2 转移某个project到某一group
No.3 列出所有group的成员信息
No.4 添加或者删除group成员

总结

gitlab的API整体来说还是很强大的,尤其是根nexus3相比。但是token的管理确实在实际项目中需要多多留心和注意,安全生产,警钟长鸣。

参考

https://docs.gitlab.com/ce/api/users.html
https://docs.gitlab.com/ce/api/projects.html
https://docs.gitlab.com/ce/api/