diff options
author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2025-03-30 17:34:11 +0200 |
---|---|---|
committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2025-03-30 17:34:11 +0200 |
commit | 2c0347566f99afec2e3963d74f4fc970e6187217 (patch) | |
tree | 0c63e87823ab595fffcd474143fa10269a4f65fd /pkg/service | |
parent | f19adedc4b7f71c824a59d4a797bd8872bdb0bbd (diff) | |
download | cerrado-2a27ff4823e684490af742ce16998cc7ae40b55e.tar.gz cerrado-2a27ff4823e684490af742ce16998cc7ae40b55e.tar.bz2 cerrado-2a27ff4823e684490af742ce16998cc7ae40b55e.zip |
Diffstat (limited to 'pkg/service')
-rw-r--r-- | pkg/service/git.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pkg/service/git.go b/pkg/service/git.go index 5410d7a..6aa5cd6 100644 --- a/pkg/service/git.go +++ b/pkg/service/git.go @@ -2,6 +2,7 @@ package service import ( "compress/gzip" + "context" "errors" "io" "log/slog" @@ -299,3 +300,31 @@ func (g *GitService) GetHead(name string) (*plumbing.Reference, error) { return repo.Head() } + +func (g *GitService) WriteInfoRefs(ctx context.Context, name string, w io.Writer) error { + r := g.configRepo.GetByName(name) + if r == nil { + return ErrRepositoryNotFound + } + + repo, err := git.OpenRepository(r.Path) + if err != nil { + return err + } + + return repo.WriteInfoRefs(ctx, w) +} + +func (g *GitService) WriteUploadPack(ctx context.Context, name string, re io.Reader, w io.Writer) error { + r := g.configRepo.GetByName(name) + if r == nil { + return ErrRepositoryNotFound + } + + repo, err := git.OpenRepository(r.Path) + if err != nil { + return err + } + + return repo.WriteUploadPack(ctx, re, w) +} |