晓夏

YoungCheung

Zhang Sir's technical way

python 通过python-gitlab的api v4获取仓库相关信息

浏览量:400

代码如下:

#!/usr/bin/env python
# -*- conding:utf-8 -*-
__Author__ = "YoungCheung"

import gitlab
import requests

plist = ''
def allprojects():
    #######获取gitlab的所有projects###
    projects = gl.projects.list(all=True)
    for project in projects:
        print(project.name,project.id)
        
def allgroups():
    #######获取gitlab的所有group名称以及ID###
    all_groups = gl.groups.list(all=True)
    for group in all_groups:
        print(group.name,group.id)
        
def allusers():
    #######获取gitlab的所有user名称以及ID###
    users = gl.users.list(all=True)
    for user in users:
        print(user.username,user.id,user.name,user.state)
        
def assgroup():
    #######获取gitlab指定组内所有user以及project名称以及ID信息###
    gid = int(input('Input the group ID: '))
    group = gl.groups.get(gid)
    print(group.name)
    projects = group.projects.list(all=True)
    for project in projects:
        print(group.name,project.name)

def projectinfo():
    pid = int(input('Input the project ID: '))
    projects = gl.projects.get(pid)
    print(projects.name,projects.http_url_to_repo)
    
def projectid():
    gid = int(input('Input the group ID: '))
    group = gl.groups.get(gid)
    repo = str(input('Input your repo name: '))
    project = gl.projects.get(group.name + '/' + repo)
    print(project.id)
    
def assuser():
    #######获取gitlab指定user###
    uid = int(input('Input the user ID: '))
    user = gl.users.get(uid)
    print(user.name)
    
if __name__ == '__main__':
    gl = gitlab.Gitlab('https://10.148.xx.xx/', private_token='_gxxxxxxx', ssl_verify=False)
    requests.packages.urllib3.disable_warnings()
    info = {1: 'allprojects()', 2: 'allgroups()', 3: 'allusers()', 4: 'projectinfo()', 5: 'projectid()',
            6: 'assuser()', 7: 'assgroup()'}
    serp = '-' * 20
    print('''%s
    1. 列出所有的projects
    2. 列出所有的groups
    3. 列出所有的users
    4. 根据project的ID列出project的所有信息
    5. 列出指定的project ID
    6. 列出指定的user
    7. 列出指定的组内的信息
    %s''' % (serp, serp))
    num = int(input('Input your choice: '))
    exec(info[num])


神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。