import git class Git: def __init__(self, repo_path): try: self.repo = git.Repo(repo_path) except git.InvalidGitRepositoryError: raise ValueError(f"Invalid git repository at {repo_path}") def get_branches(self): return sorted(self.repo.branches, key=lambda b: b.commit.committed_date, reverse=True) def get_commits(self): return list(self.repo.iter_commits()) def get_tags(self): return sorted(self.repo.tags, key=lambda b: b.commit.committed_date, reverse=True)