python-gitlab統計用戶下所在組及加入的項目

直接上腳本,python-gitlab版本爲2.2.0,pycharm內下載

import gitlab
from collections import defaultdict
gl = gitlab.Gitlab('http://gitlab.example.com/',private_token='XXXXX',api_version='4')
# projects = gl.projects.list(all=True)
# print(projects)
users = gl.users.list(active=True,all=True)  #拿到所有用戶
u = [user.name for user in users] #生成用戶列表
projects = gl.projects.list(all=True)   #拿到所有項目
print(u)
for i in u:  #只包含除組以外個人加入的項目
    name_dict = defaultdict(list)
    for project in projects:
        # print(project.id, project.name)
        members = project.members.list()   #項目下的成員列表,非繼承,要繼承父項目人員設置爲project.members.list(all=True)
        a = [me.name for me in members]
        if i in tuple(a):
            name_dict[i].append(project.path_with_namespace) #生成以用戶名爲key,項目名爲value列表的字典
    print(name_dict)
 
for i in u:  #只包含人所在的組
    name_dict = defaultdict(list)
    for group in groups:
        # print(project.id, project.name)
        members = group.members.list()
        a = [me.name for me in members]
        if i in tuple(a):
            name_dict[i].append(group.full_path)  #拿到用戶擁有的所有組
    print(name_dict)
    
    
    #去掉黑名單,無項目的人要自己篩選

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章