11import logging
22from dataclasses import dataclass
3- from typing import List
3+ from typing import List , Optional
44
55import requests
66
@@ -17,6 +17,11 @@ class Repository:
1717 forks : int
1818
1919
20+ @dataclass
21+ class GithubUser :
22+ name : str
23+
24+
2025logger = logging .getLogger (__name__ )
2126
2227
@@ -28,6 +33,14 @@ def __init__(self, access_token: str):
2833 "X-GitHub-Api-Version" : "2022-11-28" ,
2934 }
3035
36+ def get_user (self ) -> Optional [GithubUser ]:
37+ response = requests .get (f"https://api.github.com/user" , headers = self .request_headers )
38+ if response .status_code != 200 :
39+ logger .error (f"Failed to get user" )
40+ return None
41+
42+ return GithubUser (name = response .json ()["login" ])
43+
3144 def list_repositories_for_organization (self , organization : str ) -> List [Repository ]:
3245 response = requests .get (f"https://api.github.com/orgs/{ organization } /repos" , headers = self .request_headers )
3346 if response .status_code != 200 :
@@ -37,7 +50,7 @@ def list_repositories_for_organization(self, organization: str) -> List[Reposito
3750 return [self .__repo_from_json (repo ) for repo in response .json ()]
3851
3952 def list_repositories_for_user (self , user : str ) -> List [Repository ]:
40- response = requests .get (f"https://api.github.com/user /{ user } /repos" , headers = self .request_headers )
53+ response = requests .get (f"https://api.github.com/users /{ user } /repos" , headers = self .request_headers )
4154 if response .status_code != 200 :
4255 logger .error (f"Failed to get repositories for user { user } : { response .text } " )
4356 return []
0 commit comments