• 通用概念

Gitlab是一个web服务器,既然是服务器则具有服务器的相关通用性能。外部应用访问服务器资源,通用具有两种方法:

  1. 应用程序链接gitlab服务器采用Linux命令,以Java为例,Java中的runtime运行时,封装git命令,一般是嵌入Linux脚本命令,本文不涉及。
  2. 应用程序与gitlab服务器进行接口调用,以Java为例,Java中进行API调用,通过HTTP client或Restful风格进行接口调用,返回的数据均是JSON格式。
  3. 接口样例
  4. 访问接口的方法具有两个方式:

    (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=number

        2、访问gitlab的所有项目信息(仅管理员权限可查所有)
        GET /projects/all
        http://gitlab_host/api/v3/projects/all?private_token=ur57qiH5nmbHGnFx-6o9

        3、获得单一id的项目组信息(id是git服务器对项目的编号)
        GET /projects/:id
        http://gitlab_host/api/v3/projects/399?private_token=ur57qiH5nmbHGnFx-6o9

        4、获得某项目组的事件(id是git服务器对项目的编号)
        GET /projects/:id/events 
        http://gitlab_host/api/v3/projects/399/events?private_token=ur57qiH5nmbHGnFx-6o9

        5、获得某项目组的成员(id是git服务器对项目的编号,需要管理员权限)
        GET /projects/:id/members
    http://gitlab_host/api/v3/projects/399/members?private_token=ur57qiH5nmbHGnFx-6o9

        6、获得某项目组的指定成员(id是git服务器对项目的编号,userId是用户编号)
        GET /projects/:id/members/:user_id
    http://gitlab_host/api/v3/projects/399/members/278?private_token=ur57qiH5nmbHGnFx-6o9

        7、以下是分页的查询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-6o9

        9、获得指定项目的仓库标签(id是git服务器对项目的编号)
        GET /projects/:id/repository/tags
    http://gitlab_host/api/v3/projects/399/repository/tags?private_token=ur57qiH5nmbHGnFx-6o9

        10、获得指定项目的提交记录(id是git服务器对项目的编号)
        GET /projects/:id/repository/commits
    http://gitlab_host/api/v3/projects/399/repository/commits?private_token=ur57qiH5nmbHGnFx-6o9

  5. (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的代码,但是接口通用)

    gitlab Api接口使用 - FRESHMANS - 博客园

  6. 官方文档
  7. Search through GitLab Documentation | GitLab搜索页

    Redirecting...https://docs.gitlab.com/ee/api/README.html (API总览页面)

Logo

更多推荐