gitea-languages-calculator/gitea-languages-calculator.py

57 lines
1.5 KiB
Python
Raw Normal View History

import requests
2024-03-22 23:45:04 +01:00
import sys
apiLocation = "https://git.tijl.dev/api/v1"
2024-03-22 23:45:04 +01:00
secret = sys.argv[1]
2024-03-22 23:45:04 +01:00
userrepos = requests.get(
apiLocation+'/user/repos',
headers={
'Authorization': 'token '+secret
}
)
if userrepos.status_code == 200:
userrepos = userrepos.json()
else:
print(f'Request failed with status code {userrepos.status_code}')
result = []
for item in userrepos:
languages_url = item.get('languages_url')
if languages_url:
2024-03-22 23:45:04 +01:00
language_response = requests.get(
languages_url,
headers={'Authorization': 'token '+secret}
)
if language_response.status_code == 200:
language_data = language_response.json()
2024-03-22 23:45:04 +01:00
newdata = {
'full_name': item.get('full_name'),
'language_data': language_data
}
result.append(newdata)
else:
print(f'Request failed with status code {userrepos.status_code}')
language_counts = {}
for item in result:
language_data = item.get('language_data')
if language_data:
for language, count in language_data.items():
if language in language_counts:
language_counts[language]['score'] += count
else:
language_counts[language] = {'score': count}
2024-03-22 23:45:04 +01:00
sorted_data = dict(
sorted(
language_counts.items(),
key=lambda x: x[1]['score'],
reverse=True)
)
print(sorted_data)