Gitlab使用API访问项目统计信息
通用概念Gitlab是一个web服务器,既然是服务器则具有服务器的相关通用性能。外部应用访问服务器资源,通用具有两种方法:应用程序链接gitlab服务器采用Linux命令,以Java为例,Java中的runtime运行时,封装git命令,一般是嵌入Linux脚本命令,本文不涉及。应用程序与gitlab服务器进行接口调用,以Java为例,Java中进行API调用,通过HTTP client或Rest
- 通用概念
Gitlab是一个web服务器,既然是服务器则具有服务器的相关通用性能。外部应用访问服务器资源,通用具有两种方法:
- 应用程序链接gitlab服务器采用Linux命令,以Java为例,Java中的runtime运行时,封装git命令,一般是嵌入Linux脚本命令,本文不涉及。
- 应用程序与gitlab服务器进行接口调用,以Java为例,Java中进行API调用,通过HTTP client或Restful风格进行接口调用,返回的数据均是JSON格式。
- 接口样例
-
访问接口的方法具有两个方式:
(1)公布一个token进行公有登录,token可以随时更新,每次更新后原始token则失效了。
(2)采用session API需要公开一个账号,使用公共账号进行查询操作(不建议session cookie操作gitlab的API,官网也不推荐)
(1)Gitlab 的API文档(gitlab的服务器自带readme文档,以下是V3文档)
http://{gitlab_host}/help/api/README.md
【个人总结常用API,其中分页的参数是通用的;token是我个人的,token的权限决定返回数据信息的多少与范围】
1、访问gitlab的项目信息,局限于token的权限(无分页参数,每页至少20条,每页最多100条)
GET /projects http://gitlab_host/api/v3/projects?private_token=ur57qiH5nmbHGnFx-6o9&per_page=number2、访问gitlab的所有项目信息(仅管理员权限可查所有)
GET /projects/all
http://gitlab_host/api/v3/projects/all?private_token=ur57qiH5nmbHGnFx-6o93、获得单一id的项目组信息(id是git服务器对项目的编号)
GET /projects/:id
http://gitlab_host/api/v3/projects/399?private_token=ur57qiH5nmbHGnFx-6o94、获得某项目组的事件(id是git服务器对项目的编号)
GET /projects/:id/events
http://gitlab_host/api/v3/projects/399/events?private_token=ur57qiH5nmbHGnFx-6o95、获得某项目组的成员(id是git服务器对项目的编号,需要管理员权限)
GET /projects/:id/members
http://gitlab_host/api/v3/projects/399/members?private_token=ur57qiH5nmbHGnFx-6o96、获得某项目组的指定成员(id是git服务器对项目的编号,userId是用户编号)
GET /projects/:id/members/:user_id
http://gitlab_host/api/v3/projects/399/members/278?private_token=ur57qiH5nmbHGnFx-6o97、以下是分页的查询gitlab中的用户信息,分页参数是通用的,适配所有API(管理员权限查询的字段会多一些)
http://gitlab_host/api/v3/users?private_token=ur57qiH5nmbHGnFx-6o9&per_page=每页数目&page=当前页号8、获得指定用户信息(id是git对用户的编号,admin权限看到的字段信息会多一些)
GET /users/:id/
http://gitlab_host/api/v3/users/278?private_token=ur57qiH5nmbHGnFx-6o99、获得指定项目的仓库标签(id是git服务器对项目的编号)
GET /projects/:id/repository/tags
http://gitlab_host/api/v3/projects/399/repository/tags?private_token=ur57qiH5nmbHGnFx-6o910、获得指定项目的提交记录(id是git服务器对项目的编号)
GET /projects/:id/repository/commits
http://gitlab_host/api/v3/projects/399/repository/commits?private_token=ur57qiH5nmbHGnFx-6o9 -
(2)访问gitlab的所有项目信息(举例,这种接口需要携带token的账户具有超级管理员的权限)
https://Gitlab_Host_IP/api/v3/projects?private_token=XXXXXX
#private_token为必须项,这里为获取所有的项目信息
(3)通过用户名密码获取private_token(由于篇幅太长,附上了网址)
Gitlab的API调用 - sea的博客 - 博客园https://www.cnblogs.com/sea520/p/12202517.html
(4)实战举例(这个python的代码,但是接口通用)
- 官方文档
-
Search through GitLab Documentation | GitLab(搜索页)
Redirecting...https://docs.gitlab.com/ee/api/README.html (API总览页面)
更多推荐
所有评论(0)