summaryrefslogtreecommitdiffstats
path: root/g2h/git.py
blob: 9f3bba88c4c34a9e38dcb44f911e76490e106b27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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_all_commits(self):
        return list(self.repo.iter_commits())

    def get_branches(self):
        return sorted(self.repo.branches, key=lambda b: b.commit.committed_date, reverse=True)

    def get_tags(self):
        return sorted(self.repo.tags, key=lambda b: b.commit.committed_date, reverse=True)