• 【转】教你怎么调用Gitlab API


    官方文档:

    https://docs.gitlab.com/ce/api/

    https://docs.gitlab.com/ee/api/branches.html#list-repository-branches

    ============

     1、生成Personal Access Tokens

         选择右上角用户信息setting—>Access Tokens

    2、常用Gitlab API

    #获取所有的项目信息

    #private_token来自Access Tokens

    http://192.168.199.184/api/v3/projects?private_token=gqv1hvjbGCLs6uAUmBV8&per_page=10

    #获取项目信息

    #15 为项目ID,来自所有的项目信息

    http://192.168.199.184/api/v3/projects/15         

    #查看用户信息

    http://192.168.199.184/api/v3/projects/15/users?private_token=gqv1hvjbGCLs6uAUmBV8&per_page=10

    #获取commits提交信息

    #15 为项目ID,来自所有的项目信息

    http://192.168.199.184/api/v3/projects/15/repository/commits/master?private_token=gqv1hvjbGCLs6uAUmBV8&per_page=10

    3、实战案例

    获取项目信息

    复制代码
    #!/usr/bin/env python
    #-*-coding:utf-8-*-
    import requests
    url = 'http://192.168.199.184/api/v3/projects?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=50'    
    user_url= 'http://192.168.199.184/api/v3/projects/15/users?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=10'  
    #获取项目id和项目名称
    def GetProject_id(project_url):  
        r = requests.get(project_url)
        data = r.json()
        ProjectId_list = []
        ProjectName_list = []
        for i in data:
            ProjectId_list.append(i['id'])
            ProjectName_list.append(i['name'])
        return ProjectId_list,ProjectName_list
    #根据项目id获取项目下的用户信息
    def GetProject_userlist():
        IdList = GetProject_id(url)
        project_id = IdList[0]
        project_name = IdList[1]
        for id in project_id:
            l = []
            project_user = requests.get(user_url.format(id))  
    #生成完整的用于显示项目下所有user的连接 req_data = project_user.json() for i in req_data: l.append(i['name']) print (project_name[project_id.index(id)],l) GetProject_userlist()
    复制代码

    获取项目提交信息

    复制代码
    #-*-coding:utf-8-*-
    import requests
    import  re
    url = 'http://192.168.199.184/api/v3/projects?private_token=oMJwN5ErC8_n1QvTsyDR&per_page=10'
    r =requests.get(url)
    p_group = ['HJ']
    data = r.json()
    print ("项目名称",' '*20,'最近提交时间')
    for i in data:
        if i['ssh_url_to_repo'].split(':')[1].split('/')[0] in p_group:
            r1 = requests.get('http://192.168.199.184/api/v3/projects/15/repository/commits/master?private_token=gqv1hvjbGCLs6uAUmBV8&per_page=10'
                % i['id'])
            data2 = r1.json()
            if data2['message'].strip() == '404 Commit Not Found':
                print (i['ssh_url_to_repo'].split(':')[1],' '*11,'未提交任何代码')
            else:
                print(i['ssh_url_to_repo'].split(':')[1], ' ' * 11, data2['committed_date'][:10])
    复制代码
  • 相关阅读:
    将现有MySQL数据库改为大小写不敏感
    在Windows中玩转Docker Toolbox
    使用ABP EntityFramework连接MySQL数据库
    数据库设计范式2——BC范式和第四范式
    让OData和NHibernate结合进行动态查询
    文档在线预览的实现
    有哪些老鸟程序员知道而新手不知道的小技巧?自我感受
    EEPROM的概念接口类型及软件实例
    flash的几种模式Normal Mode、DUAL Mode、Quad Mode的概念和区别
    ESP8266 打造一款物联网产品---搭建环境编译及烧录
  • 原文地址:https://www.cnblogs.com/HYanqing/p/11991636.html
Copyright © 2020-2023  润新知