diff --git a/src/main/scala/gitbucket/core/service/RepositoryCreationService.scala b/src/main/scala/gitbucket/core/service/RepositoryCreationService.scala index 913e53d..b4e13c0 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryCreationService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryCreationService.scala @@ -2,10 +2,9 @@ import java.nio.file.Files import java.util.concurrent.ConcurrentHashMap - -import gitbucket.core.model.Profile.profile.blockingApi._ +import gitbucket.core.model.Profile.profile.blockingApi.* import gitbucket.core.model.activity.{CreateRepositoryInfo, ForkInfo} -import gitbucket.core.util.Directory._ +import gitbucket.core.util.Directory.* import gitbucket.core.util.{FileUtil, JGitUtil, LockUtil} import gitbucket.core.model.{Account, Role} import gitbucket.core.plugin.PluginRegistry @@ -18,6 +17,7 @@ import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.Future +import scala.jdk.CollectionConverters._ import scala.util.Using object RepositoryCreationService { @@ -167,6 +167,16 @@ try { Using.resource(Git.open(dir)) { git => git.push().setRemote(gitdir.toURI.toString).setPushAll().setPushTags().call() + // Adjust the default branch + val branches = git.branchList().call().asScala.map(_.getName.stripPrefix("refs/heads/")) + if (!branches.contains(defaultBranch)) { + val defaultBranch = Seq("master", "main").find(branches.contains).getOrElse(branches.head) + saveRepositoryDefaultBranch(owner, name, defaultBranch) + // Change repository HEAD + Using.resource(Git.open(getRepositoryDir(owner, name))) { git => + git.getRepository.updateRef(Constants.HEAD, true).link(Constants.R_HEADS + defaultBranch) + } + } } } finally { FileUtils.deleteQuietly(dir)