zoukankan      html  css  js  c++  java
  • 【转】教你怎么调用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])
    复制代码
  • 相关阅读:
    vue教程2-06 过滤器
    vue教程2-05 v-for循环 重复数据无法添加问题 加track-by='索引'
    vue教程2-04 vue实例简单方法
    Linux文件I/O
    Linux内存管理
    进程中内存地址空间的划分
    Ubuntu12.04 15.04禁止移动介质自动播放
    条件编译,头文件,静态库,共享库与多文件编程
    C语言的函数
    C语言流程控制
  • 原文地址:https://www.cnblogs.com/HYanqing/p/11991636.html
Copyright © 2011-2022 走看看