Sets the default branch for a new git repository from an import to the HEAD reference of the imported repository.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
This commit is contained in:
Rene Pfeuffer
2023-02-23 10:10:33 +01:00
committed by SCM-Manager
parent 1842a49c77
commit 0361ae3c6c
8 changed files with 41 additions and 38 deletions

View File

@@ -52,6 +52,7 @@ public class GitIncomingCommandTest
private final LfsLoader lfsLoader = mock(LfsLoader.class);
private final PullHttpConnectionProvider pullHttpConnectionProvider = mock(PullHttpConnectionProvider.class);
private final GitRepositoryConfigStoreProvider storeProvider = mock(GitRepositoryConfigStoreProvider.class);
/**
* Method description
@@ -105,7 +106,8 @@ public class GitIncomingCommandTest
context,
postReceiveRepositoryHookEventFactory,
lfsLoader,
pullHttpConnectionProvider);
pullHttpConnectionProvider,
storeProvider);
PullCommandRequest req = new PullCommandRequest();
req.setRemoteRepository(outgoingRepository);
pull.pull(req);

View File

@@ -47,7 +47,6 @@ import sonia.scm.net.HttpURLConnectionFactory;
import sonia.scm.repository.GitChangesetConverterFactory;
import sonia.scm.repository.GitConfig;
import sonia.scm.repository.GitHeadModifier;
import sonia.scm.repository.GitRepositoryConfig;
import sonia.scm.repository.GitUtil;
import sonia.scm.repository.api.MirrorCommandResult;
import sonia.scm.repository.api.MirrorFilter;
@@ -56,7 +55,6 @@ import sonia.scm.repository.work.NoneCachingWorkingCopyPool;
import sonia.scm.repository.work.SimpleWorkingCopyFactory;
import sonia.scm.repository.work.WorkdirProvider;
import sonia.scm.security.GPG;
import sonia.scm.store.ConfigurationStore;
import sonia.scm.store.InMemoryConfigurationStoreFactory;
import sonia.scm.util.IOUtil;
@@ -76,13 +74,11 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertThrows;
import static org.mockito.AdditionalMatchers.not;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static sonia.scm.repository.api.MirrorCommandResult.ResultType.FAILED;
import static sonia.scm.repository.api.MirrorCommandResult.ResultType.OK;
import static sonia.scm.repository.api.MirrorCommandResult.ResultType.REJECTED_UPDATES;
@@ -107,11 +103,8 @@ public class GitMirrorCommandTest extends AbstractGitCommandTestBase {
private final GitHeadModifier gitHeadModifier = mock(GitHeadModifier.class);
private final GitRepositoryConfigStoreProvider storeProvider = mock(GitRepositoryConfigStoreProvider.class);
private final ConfigurationStore<GitRepositoryConfig> configurationStore = mock(ConfigurationStore.class);
private final LfsLoader lfsLoader = mock(LfsLoader.class);
private final GitRepositoryConfig gitRepositoryConfig = new GitRepositoryConfig();
@Before
public void bendContextToNewRepository() throws IOException, GitAPIException {
clone = tempFolder.newFolder();
@@ -146,12 +139,6 @@ public class GitMirrorCommandTest extends AbstractGitCommandTestBase {
lfsLoader);
}
@Before
public void initializeStores() {
when(storeProvider.get(repository)).thenReturn(configurationStore);
when(configurationStore.get()).thenReturn(gitRepositoryConfig);
}
@After
public void cleanupWorkdir() {
if (workdirAfterClose != null) {
@@ -834,10 +821,7 @@ public class GitMirrorCommandTest extends AbstractGitCommandTestBase {
assertThat(update.getBranchName()).isEqualTo("master");
assertThat(update.getNewRevision()).isEmpty();
});
verify(configurationStore).set(argThat(argument -> {
assertThat(argument.getDefaultBranch()).isNotEqualTo("master");
return true;
}));
verify(storeProvider).setDefaultBranch(eq(repository), not(eq("master")));
}
@Test

View File

@@ -33,6 +33,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import sonia.scm.api.v2.resources.GitRepositoryConfigStoreProvider;
import sonia.scm.repository.GitConfig;
import sonia.scm.repository.Modifications;
@@ -54,6 +55,8 @@ public class GitModificationsCommandTest extends AbstractRemoteCommandTestBase {
private LfsLoader lfsLoader;
@Mock
private PullHttpConnectionProvider pullHttpConnectionProvider;
@Mock
private GitRepositoryConfigStoreProvider storeProvider;
@Before
public void init() {
@@ -179,7 +182,8 @@ public class GitModificationsCommandTest extends AbstractRemoteCommandTestBase {
context,
postReceiveRepositoryHookEventFactory,
lfsLoader,
pullHttpConnectionProvider);
pullHttpConnectionProvider,
storeProvider);
PullCommandRequest pullRequest = new PullCommandRequest();
pullRequest.setRemoteRepository(incomingRepository);
pullCommand.pull(pullRequest);