diff --git a/src/main/java/be/seeseepuff/webgit/service/GitService.java b/src/main/java/be/seeseepuff/webgit/service/GitService.java index 09b3d2e..37481fd 100644 --- a/src/main/java/be/seeseepuff/webgit/service/GitService.java +++ b/src/main/java/be/seeseepuff/webgit/service/GitService.java @@ -36,6 +36,8 @@ public class GitService { if (name == null || name.isBlank()) name = deriveRepositoryName(url); + if (name.isBlank()) + throw new IllegalArgumentException("Repository name must not be blank"); Path worktree = properties.getWorktreePath().resolve(name); Path gitDir = properties.getGitDirPath().resolve(name); diff --git a/src/test/java/be/seeseepuff/webgit/service/GitServiceTest.java b/src/test/java/be/seeseepuff/webgit/service/GitServiceTest.java index fe54186..d97fa89 100644 --- a/src/test/java/be/seeseepuff/webgit/service/GitServiceTest.java +++ b/src/test/java/be/seeseepuff/webgit/service/GitServiceTest.java @@ -299,4 +299,16 @@ class GitServiceTest String expectedName = gitService.deriveRepositoryName(bareRemote.toUri().toString()); assertTrue(Files.exists(worktreePath.resolve(expectedName))); } + + @Test + void cloneWithBlankUrlAndBlankNameThrows() + { + assertThrows(IllegalArgumentException.class, () -> gitService.cloneRepository("", "")); + } + + @Test + void cloneWithUrlDerivingBlankNameThrows() + { + assertThrows(IllegalArgumentException.class, () -> gitService.cloneRepository(".git", null)); + } }