From 01f08aeb7fc300f8ec2434259fbc6ff0566ec329 Mon Sep 17 00:00:00 2001 From: Sandra Parsick Date: Sun, 2 Jun 2024 11:43:27 +0200 Subject: [PATCH] fix: set default branch on main --- .../gitserver/plain/GitServerContainer.java | 3 ++- .../plain/GitServerContainerTest.java | 25 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/testcontainers-gitserver/src/main/java/com/github/sparsick/testcontainers/gitserver/plain/GitServerContainer.java b/testcontainers-gitserver/src/main/java/com/github/sparsick/testcontainers/gitserver/plain/GitServerContainer.java index 28ce384..d5a3454 100644 --- a/testcontainers-gitserver/src/main/java/com/github/sparsick/testcontainers/gitserver/plain/GitServerContainer.java +++ b/testcontainers-gitserver/src/main/java/com/github/sparsick/testcontainers/gitserver/plain/GitServerContainer.java @@ -17,7 +17,7 @@ public class GitServerContainer extends GenericContainer { private static final String GIT_PASSWORD_KEY = "GIT_PASSWORD"; - private static DockerImageName DEFAULT_DOCKER_IMAGE_NAME = DockerImageName.parse("rockstorm/git-server"); + private static final DockerImageName DEFAULT_DOCKER_IMAGE_NAME = DockerImageName.parse("rockstorm/git-server"); private String gitRepoName = "testRepo"; private String pathToExistingRepo; private SshIdentity sshClientIdentity; @@ -153,6 +153,7 @@ private void configureGitRepository() { execInContainer("git", "init", "--bare", gitRepoPath); execInContainer("chown", "-R", "git:git", "/srv"); } + execInContainer("git", "symbolic-ref", "HEAD", "refs/heads/main"); } catch (IOException | InterruptedException e) { throw new RuntimeException("Configure Git repository failed",e); } diff --git a/testcontainers-gitserver/src/test/java/com/github/sparsick/testcontainers/gitserver/plain/GitServerContainerTest.java b/testcontainers-gitserver/src/test/java/com/github/sparsick/testcontainers/gitserver/plain/GitServerContainerTest.java index 1a7b1ee..f4a03b9 100644 --- a/testcontainers-gitserver/src/test/java/com/github/sparsick/testcontainers/gitserver/plain/GitServerContainerTest.java +++ b/testcontainers-gitserver/src/test/java/com/github/sparsick/testcontainers/gitserver/plain/GitServerContainerTest.java @@ -31,7 +31,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Stream; -import java.util.stream.StreamSupport; import static org.assertj.core.api.Assertions.assertThatNoException; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -126,7 +125,6 @@ void copyExistingGitRepo(@TempDir File sampleRepo) throws GitAPIException, IOExc Git.cloneRepository() .setURI(gitRepoURI.toString()) .setDirectory(tempDir) - .setBranch("main") .setTransportConfigCallback(GitServerContainerTest::configureWithPasswordAndNoHostKeyChecking) .call() ); @@ -149,7 +147,6 @@ void copyExistingGitRepoWithCustomRepoName(@TempDir File sampleRepo) throws IOEx Git.cloneRepository() .setURI(gitRepoURI.toString()) .setDirectory(tempDir) - .setBranch("main") .setTransportConfigCallback(GitServerContainerTest::configureWithPasswordAndNoHostKeyChecking) .call() ); @@ -170,7 +167,6 @@ void setupGitRepo(GitServerVersions gitServer) { Git.cloneRepository() .setURI(gitRepoURI.toString()) .setDirectory(tempDir) - .setBranch("main") .setTransportConfigCallback(GitServerContainerTest::configureWithPasswordAndNoHostKeyChecking) .call() ); @@ -189,7 +185,6 @@ void pubKeyAuth(GitServerVersions gitServer) { Git.cloneRepository() .setURI(gitRepoURI.toString()) .setDirectory(tempDir) - .setBranch("main") .setTransportConfigCallback(configureWithSshIdentityAndNoHostVerification(containerUnderTest.getSshClientIdentity())) .call() ); @@ -210,12 +205,30 @@ void strictHostKeyVerifivation(GitServerVersions gitServer) { Git.cloneRepository() .setURI(gitRepoURI.toString()) .setDirectory(tempDir) - .setBranch("main") .setTransportConfigCallback(configureWithSshIdentityAndHostKey(containerUnderTest.getSshClientIdentity(), containerUnderTest.getHostKey())) .call() ); } + @ParameterizedTest + @EnumSource(GitServerVersions.class) + void defaultBranch(GitServerVersions gitServer) throws GitAPIException, IOException { + var containerUnderTest = new GitServerContainer(gitServer.getDockerImageName()); + + containerUnderTest.start(); + + URI gitRepoURI = containerUnderTest.getGitRepoURIAsSSH(); + + Git repo = Git.cloneRepository() + .setURI(gitRepoURI.toString()) + .setDirectory(tempDir) + .setTransportConfigCallback(GitServerContainerTest::configureWithPasswordAndNoHostKeyChecking) + .call(); + + String currentBranch = repo.getRepository().getBranch(); + assertThat(currentBranch).isEqualTo("main"); + } + @NotNull private TransportConfigCallback configureWithSshIdentityAndHostKey(SshIdentity sshIdentity, SshHostKey hostKey) { return transport -> {