Ответ 1
Для этого нет API. Таким образом, есть два пути. Простые данные, соскабливающие пользовательский URL-адрес или цикл через каждого пользователя репо, разворачиваются, а затем подсчитывают вклад. Более поздняя из них будет более трудоемкой. Первый из них гораздо более надежный, поскольку он кэшируется github. Ниже приведен подход python для получения того же
import json
import requests
from bs4 import BeautifulSoup
GITHUB_URL = 'https://github.com/'
def get_contributions(usernames):
"""
Get a github user public contributions.
:param usernames: A string or sequence of github usernames.
"""
contributions = {'users': [], 'total': 0}
if isinstance(usernames, str) or isinstance(usernames, unicode):
usernames = [usernames]
for username in usernames:
response = requests.get('{0}{1}'.format(GITHUB_URL, username))
if not response.ok:
contributions['users'].append({username: dict(total=0)})
continue
bs = BeautifulSoup(response.content, "html.parser")
total = bs.find('div', {'class': 'js-contribution-graph'}).findNext('h2')
contributions['users'].append({username: dict(total=int(total.text.split()[0].replace(',', '')))})
contributions['total'] += int(total.text.split()[0].replace(',', ''))
return json.dumps(contributions, indent=4)
PS: Взято из https://github.com/garnertb/github-contributions
Для более позднего подхода есть пакет npm
https://www.npmjs.com/package/github-user-contributions
Но я бы рекомендовал использовать только метод соскабливания