aboutsummaryrefslogtreecommitdiff
path: root/pkg/service
diff options
context:
space:
mode:
authorGabriel A. Giovanini <mail@gabrielgio.me>2024-06-07 14:02:25 +0200
committerGabriel A. Giovanini <mail@gabrielgio.me>2024-06-07 14:02:25 +0200
commit18aa098f50e2a2c7db01dd4d04dde460fd40f5d5 (patch)
tree5e3b3d3ba3206f2765db1a23a378275852154a51 /pkg/service
parentd0e0c1eb99303e1000140d4b98c610077278dc42 (diff)
downloadcerrado-18aa098f50e2a2c7db01dd4d04dde460fd40f5d5.tar.gz
cerrado-18aa098f50e2a2c7db01dd4d04dde460fd40f5d5.tar.bz2
cerrado-18aa098f50e2a2c7db01dd4d04dde460fd40f5d5.zip
feat: Add blob endpoint
Diffstat (limited to 'pkg/service')
-rw-r--r--pkg/service/git.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/pkg/service/git.go b/pkg/service/git.go
index 9bf11f4..f886785 100644
--- a/pkg/service/git.go
+++ b/pkg/service/git.go
@@ -89,6 +89,38 @@ func (g *GitService) ListCommits(name, ref string) ([]*object.Commit, error) {
return repo.Commits()
}
+func (g *GitService) GetTree(name, ref, path string) (*object.Tree, error) {
+ // TODO: handle nil
+ r := g.configRepo.GetByName(name)
+
+ repo, err := git.OpenRepository(r.Path)
+ if err != nil {
+ return nil, err
+ }
+ err = repo.SetRef(ref)
+ if err != nil {
+ return nil, err
+ }
+
+ return repo.Tree(path)
+}
+
+func (g *GitService) GetFileContent(name, ref, path string) (string, error) {
+ // TODO: handle nil
+ r := g.configRepo.GetByName(name)
+
+ repo, err := git.OpenRepository(r.Path)
+ if err != nil {
+ return "", err
+ }
+ err = repo.SetRef(ref)
+ if err != nil {
+ return "", err
+ }
+
+ return repo.FileContent(path)
+}
+
func (g *GitService) ListTags(name string) ([]*object.Tag, error) {
// TODO: handle nil
r := g.configRepo.GetByName(name)