zoukankan      html  css  js  c++  java
  • 教你怎么调用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])
  • 相关阅读:
    成为 Team Leader 后我最关心的那些事
    《管理的实践》读书心得
    玩黑客学校CTF
    DHCP中继器
    test
    初窥XSS跨站脚本攻击
    TCP/IP模型
    逻辑漏洞-客户端验证的邮箱-Web渗透实例之中国教育部青少年普法网站逻辑漏洞
    逻辑漏洞-支付风险-大疆某处支付逻辑漏洞可1元买无人机
    逻辑漏洞-密码找回之验证码发给了客户端
  • 原文地址:https://www.cnblogs.com/Javame/p/9363931.html
Copyright © 2011-2022 走看看