Skip to content

Commit

Permalink
feat: get all contributes since registration
Browse files Browse the repository at this point in the history
  • Loading branch information
devfle committed Feb 22, 2024
1 parent ce40652 commit 71f950e
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 8 deletions.
25 changes: 20 additions & 5 deletions graphql_query.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
"""Query for github graphql api"""
from os import getenv
from os import getenv, linesep
from datetime import datetime

QUERY = f"""
{{
user(login: "{getenv("INPUT_GITHUB_USERNAME")}") {{
contributionsCollection {{
# get the current year
current_year = datetime.now().year
contribution_list = []

# in a later version we can replace the 2015 date with user input
while current_year >= 2015:

temp_query = f"""
{"_" + str(current_year)}: contributionsCollection(from: "{str(current_year)}-01-01T00:00:00") {{
contributionCalendar {{
totalContributions
}}
}}
"""

contribution_list.append(temp_query)
current_year -= 1

QUERY = f"""
{{
user(login: "{getenv("INPUT_GITHUB_USERNAME")}") {{
{linesep.join(contribution_list)}
followers {{
totalCount
}}
Expand Down
19 changes: 16 additions & 3 deletions readme_level.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from os import getenv
from logging import exception, info
from requests import post
from datetime import datetime
from graphql_query import QUERY
from readme_data import ReadmeLevelData

Expand All @@ -23,7 +24,7 @@ def fetch_user_data(self) -> dict[str, int] | None:

if not getenv("INPUT_GITHUB_TOKEN"):
exception("an error with the github token occurred")

auth_header = {"Authorization": "Bearer " +
getenv("INPUT_GITHUB_TOKEN")}
response = post("https://api.github.com/graphql",
Expand All @@ -34,8 +35,20 @@ def fetch_user_data(self) -> dict[str, int] | None:

response_data = response.json()

user_data = (response_data["data"]["user"]
["contributionsCollection"]["contributionCalendar"])
current_year = datetime.now().year
total_contribution = []

while current_year >= 2015:
contribution_count = (response_data["data"]["user"]
["_" + str(current_year)]["contributionCalendar"]["totalContributions"])

total_contribution.append(contribution_count)
current_year -= 1


user_data = {}

user_data["totalContributions"] = sum(total_contribution)

user_data["totalFollowers"] = (response_data["data"]["user"]
["followers"]["totalCount"])
Expand Down

0 comments on commit 71f950e

Please sign in to comment.