直接上腳本,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)
#去掉黑名單,無項目的人要自己篩選