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)
    
    
    #去掉黑名单,无项目的人要自己筛选

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值