• 教你怎么调用Gitlab API


    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])
  • 相关阅读:
    Android自定义DataTimePicker(日期选择器)
    面试阶段如何与 HR 沟通薪酬
    ppshu
    什么是SOA?
    手机页游再升级 腾讯出恶搞APEC元首换装小游戏
    pp
    oracle sql
    JSP中脚本、声明和表达式的本质区别
    使用WSDL发布WebService(第二部分)简单对象访问协议——学习SOAP语法和使用SOAP发布WSDL
    Javascript 文件的同步加载与异步加载
  • 原文地址:https://www.cnblogs.com/Javame/p/9363931.html
Copyright © 2020-2023  润新知