diff --git a/main.py b/main.py index 84c284caf9ce789c3a7392133ec6054bb175bcd4..de8eecfcd44db4124d09fc39b48f2428c295cf3e 100644 --- a/main.py +++ b/main.py @@ -1,3 +1,4 @@ +# from re import I import gitlab import requests import json @@ -5,6 +6,9 @@ from json2html import * import argparse import os from dotenv import load_dotenv +from pandas.io.json import json_normalize +import pandas as pd +from flatten_json import flatten import csv parser = argparse.ArgumentParser(description="Get Project, License and Owners from gitlab") @@ -35,7 +39,7 @@ try: gl_proj = 'https://k8s-gitlab.software.geant.org/api/v4/projects' gl_license = 'repository/files/LICENSE?ref=' gl_branch = 'repository/branches' - projects = gl.projects.list() + projects = gl.projects.list(all=True) # projects = gl.projects.list(all=True) else: print("--production or --developer, please, now exit") @@ -97,12 +101,14 @@ try: owners = json.loads(data) c_user_tmp = [] for owner in owners: + # c_user_tmp = [] if owner['access_level'] == 50: # print('User ID: ', owner['id']) # print('User Name: ', owner['name']) # print('Access level: ', owner['access_level']) y = owner['id'] j_project['projects'][x]['owners'][y] = {} + # c_user_tmp = [] user = gl.users.get(y) emails = user.emails.list() if user.email == user.commit_email: @@ -111,6 +117,7 @@ try: 'owner_name': owner['name'], 'owner_mail': user.email, } + # c_user_tmp.append(owner['name'] + '<' + user.email + '>' + ';') else: user_tmp = { 'owner_id': owner['id'], @@ -118,13 +125,23 @@ try: 'owner_mail': user.email, 'owner_mail_commit': user.commit_email } + # c_user_tmp.append(owner['name'] + '<' + user.email + '>' + ';') + # c_user_tmp.append(j_project['projects'][x]['owners'][y]['owner_name'] + '<' + + # j_project['projects'][x]['owners'][y]['owner_mail'] + '>' + ';') j_project['projects'][x]['owners'][y] = user_tmp - c_user_tmp.append(j_project['projects'][x]['owners'][y]['owner_name'] + '<' + - j_project['projects'][x]['owners'][y]['owner_mail'] + '>' + ' ') - print(c_user_tmp) + print(j_project['projects'][x]['owners'][y]['owner_name'] + '<' + + j_project['projects'][x]['owners'][y]['owner_mail'] + '>' + ';') + + c_user_tmp.append(j_project['projects'][x]['owners'][y]['owner_name'] + '<' + + j_project['projects'][x]['owners'][y]['owner_mail'] + '>' + ' ') + print(c_user_tmp) + + # c_owners = j_project['projects'][x]['owners'] + # c_user = [] + # for c_owner in c_owners: + # c_user.append(c_owner['owner_name'] + ':' + c_owner['owner_mail']) c_project.append([project.attributes['id'], project.attributes['name_with_namespace'], - project.attributes['namespace']['name'], project.attributes['visibility'], - lic, last_act, c_user_tmp[0]]) + project.attributes['visibility'], lic, last_act, c_user_tmp[0]]) print(8*"-") except: print('Something wrong or Cant connect to GitLab server, check credential') @@ -132,6 +149,8 @@ except: new_jproject = json.dumps(j_project, indent=4, ensure_ascii=False) +# print(new_jproject) + with open("gitlab-projects.json", "w", encoding='utf8') as outfile: outfile.write(new_jproject) @@ -143,10 +162,18 @@ with open("gitlab-projects.html", "w", encoding='utf8') as outfile: print(c_project) with open('gitlab-projects.csv', 'w', encoding='UTF8', newline='') as f: - writer = csv.writer(f, delimiter=";") - csv_header = ['Project ID', 'Project Name', 'Group', 'Status', 'LICENSE', 'Last Activity', 'Owners'] + writer = csv.writer(f) + # writer = csv.DictWriter(j_project) # write the header - writer.writerow(csv_header) + # writer.writerow(header) + # write multiple rows writer.writerows(c_project) + +# for project in projects: + + + + +# print(new_csv) print("This is the end...")