Set proper default-branch on GitHub Import
This commit is contained in:
parent
7ffc798291
commit
98194f1766
3 changed files with 31 additions and 1 deletions
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Set proper default-branch for repository on GitHub Import
|
||||
merge_request: 26476
|
||||
author:
|
||||
type: fixed
|
|
@ -5,6 +5,7 @@ module Gitlab
|
|||
module Importer
|
||||
class RepositoryImporter
|
||||
include Gitlab::ShellAdapter
|
||||
include Gitlab::Utils::StrongMemoize
|
||||
|
||||
attr_reader :project, :client, :wiki_formatter
|
||||
|
||||
|
@ -17,7 +18,7 @@ module Gitlab
|
|||
# Returns true if we should import the wiki for the project.
|
||||
# rubocop: disable CodeReuse/ActiveRecord
|
||||
def import_wiki?
|
||||
client.repository(project.import_source)&.has_wiki &&
|
||||
client_repository&.has_wiki &&
|
||||
!project.wiki_repository_exists? &&
|
||||
Gitlab::GitalyClient::RemoteService.exists?(wiki_url)
|
||||
end
|
||||
|
@ -52,6 +53,7 @@ module Gitlab
|
|||
refmap = Gitlab::GithubImport.refmap
|
||||
project.repository.fetch_as_mirror(project.import_url, refmap: refmap, forced: true, remote_name: 'github')
|
||||
|
||||
project.change_head(default_branch) if default_branch
|
||||
true
|
||||
rescue Gitlab::Git::Repository::NoRepository, Gitlab::Shell::Error => e
|
||||
fail_import("Failed to import the repository: #{e.message}")
|
||||
|
@ -82,6 +84,18 @@ module Gitlab
|
|||
project.import_state.mark_as_failed(message)
|
||||
false
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def default_branch
|
||||
client_repository&.default_branch
|
||||
end
|
||||
|
||||
def client_repository
|
||||
strong_memoize(:client_repository) do
|
||||
client.repository(project.import_source)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -179,6 +179,17 @@ describe Gitlab::GithubImport::Importer::RepositoryImporter do
|
|||
|
||||
describe '#import_repository' do
|
||||
it 'imports the repository' do
|
||||
repo = double(:repo, default_branch: 'develop')
|
||||
|
||||
expect(client)
|
||||
.to receive(:repository)
|
||||
.with('foo/bar')
|
||||
.and_return(repo)
|
||||
|
||||
expect(project)
|
||||
.to receive(:change_head)
|
||||
.with('develop')
|
||||
|
||||
expect(project)
|
||||
.to receive(:ensure_repository)
|
||||
|
||||
|
|
Loading…
Reference in a new issue