1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| import gitlab import time import os import sys import pandas as pd import requests import json
repo_url = "http://192.168.8.1:8090" token = "xxxxxxxxxxx"
headers={ "PRIVATE-TOKEN" : token }
session=requests.Session()
df1 = pd.DataFrame(columns=['pid','url','uid','uname','role'])
gl = gitlab.Gitlab(repo_url, private_token=token) projects = gl.projects.list(all=True) for p in projects:
url=repo_url+"/api/v4/projects/"+str(p.id)+"/members" resp=session.get(url,headers=headers) j_member=json.loads(resp.text) df_member=pd.json_normalize(j_member) for i in range(len(df_member)): df1 = df1.append({'pid':p.id,'url':p.http_url_to_repo,'uid':df_member.iloc[i]['id'],'uname':df_member.iloc[i]['username'],'role':df_member.iloc[i]['access_level']}, ignore_index=True)
print (df1) df1.to_csv('project_member.csv',index = False)
|