Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/backup/backup.go')
-rw-r--r--internal/backup/backup.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/internal/backup/backup.go b/internal/backup/backup.go
index 5eed0724a..bb6bad6a4 100644
--- a/internal/backup/backup.go
+++ b/internal/backup/backup.go
@@ -230,6 +230,25 @@ func (mgr *Manager) RemoveAllRepositories(ctx context.Context, req *RemoveAllRep
return nil
}
+// RemoveRepository removes the specified repository from its storage.
+func (mgr *Manager) RemoveRepository(ctx context.Context, req *RemoveRepositoryRequest) error {
+ if err := setContextServerInfo(ctx, &req.Server, req.Repo.StorageName); err != nil {
+ return fmt.Errorf("remove repo: set context: %w", err)
+ }
+
+ repoClient, err := mgr.newRepoClient(ctx, req.Server)
+ if err != nil {
+ return fmt.Errorf("remove repo: create client: %w", err)
+ }
+
+ _, err = repoClient.RemoveRepository(ctx, &gitalypb.RemoveRepositoryRequest{Repository: req.Repo})
+ if err != nil {
+ return fmt.Errorf("remove repo: remove: %w", err)
+ }
+
+ return nil
+}
+
// Create creates a repository backup.
func (mgr *Manager) Create(ctx context.Context, req *CreateRequest) error {
if req.VanityRepository == nil {