Skip to content

Commit 7eddf51

Browse files
committed
GitHubRepoAPI: maked - get_repository and get_commits
1 parent 79006b4 commit 7eddf51

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

GitHubRepoAPI.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class GitHubRepoAPI(IRepositoryAPI):
2+
3+
def __init__(self, client):
4+
self.client = client
5+
6+
def get_repository(self, id: str) -> Optional[Repository]:
7+
try:
8+
repo = self.client.get_repo(id)
9+
return Repository(repo.full_name, repo.name, repo.html_url)
10+
except Exception as e:
11+
logging.error(f"Failed to get repository {id} from GitHub: {e}")
12+
return None
13+
14+
def get_commits(self, repo: Repository) -> List[Commit]:
15+
try:
16+
commits = self.client.get_repo(repo.id).get_commits()
17+
return [
18+
Commit(
19+
c.sha,
20+
c.commit.message,
21+
Contributor(c.author.login if c.author else "unknown", c.commit.author.email),
22+
c.commit.author.date
23+
) for c in commits
24+
]
25+
except Exception as e:
26+
logging.error(f"Failed to get commits from GitHub for repo {repo.name}: {e}")
27+
return []

0 commit comments

Comments
 (0)