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:
authorJohn Cai <jcai@gitlab.com>2019-09-20 22:33:30 +0300
committerJohn Cai <jcai@gitlab.com>2019-09-24 20:05:34 +0300
commit0716af79e6ea3438d3e68a43ad396df64184d545 (patch)
tree2b682901a34539b65e03884345add10609811cde
parent1df8aa6317b82ad89fce7951aecf90e973eb7d59 (diff)
Ensure temp dir exists before removing repository
-rw-r--r--changelogs/unreleased/jc-ensure-temp-dir-exists.yml5
-rw-r--r--internal/service/repository/remove.go5
2 files changed, 10 insertions, 0 deletions
diff --git a/changelogs/unreleased/jc-ensure-temp-dir-exists.yml b/changelogs/unreleased/jc-ensure-temp-dir-exists.yml
new file mode 100644
index 000000000..6e3f820ae
--- /dev/null
+++ b/changelogs/unreleased/jc-ensure-temp-dir-exists.yml
@@ -0,0 +1,5 @@
+---
+title: Ensure temp dir exists when removing a repository
+merge_request: 1509
+author:
+type: fixed
diff --git a/internal/service/repository/remove.go b/internal/service/repository/remove.go
index d81bf7b27..387d8d341 100644
--- a/internal/service/repository/remove.go
+++ b/internal/service/repository/remove.go
@@ -25,6 +25,11 @@ func (s *server) RemoveRepository(ctx context.Context, in *gitalypb.RemoveReposi
base := filepath.Base(path)
tempDir := tempdir.TempDir(storage)
+
+ if err = os.MkdirAll(tempDir, 0755); err != nil {
+ return nil, helper.ErrInternal(err)
+ }
+
destDir := filepath.Join(tempDir, base+"+removed")
if err = os.Rename(path, destDir); err != nil {