Detect the default branch during the repo import from GitHub
When GitHub repo is being imported the default branch is detected and in
case it is not set it falls back to `master`.
Bug: Issue 40014935
Change-Id: If6c0cfbc6e0bbd5f26d97407305e03a24a190dd0
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/GitCloneStep.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/GitCloneStep.java
index 69d1eac..503712c 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/GitCloneStep.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/GitCloneStep.java
@@ -13,6 +13,8 @@
// limitations under the License.
package com.googlesource.gerrit.plugins.github.git;
+import static java.util.stream.Collectors.toList;
+
import com.google.gerrit.entities.Project;
import com.google.gerrit.extensions.api.GerritApi;
import com.google.gerrit.extensions.api.changes.NotifyHandling;
@@ -30,6 +32,7 @@
import com.googlesource.gerrit.plugins.github.GitHubConfig;
import java.io.File;
import java.io.IOException;
+import java.util.stream.Stream;
import org.apache.commons.io.FileUtils;
import org.eclipse.jgit.api.FetchCommand;
import org.eclipse.jgit.api.Git;
@@ -95,7 +98,9 @@
try (ManualRequestContext requestContext = context.openAs(config.importAccountId)) {
ProjectInput pi = new ProjectInput();
pi.name = projectName;
- pi.parent = config.getBaseProject(getRepository().isPrivate());
+ GitHubRepository ghRepository = getRepository();
+ pi.parent = config.getBaseProject(ghRepository.isPrivate());
+ pi.branches = Stream.ofNullable(ghRepository.getDefaultBranch()).collect(toList());
gerritApi.projects().create(pi).get();
} catch (ResourceConflictException e) {
throw new GitDestinationAlreadyExistsException(projectName);