Fix hooks not being set up properly for bare import Rake task
Closes #41739
This commit is contained in:
parent
3576d59ae9
commit
35d3411f77
|
@ -103,6 +103,10 @@ class Repository
|
|||
"#<#{self.class.name}:#{@disk_path}>"
|
||||
end
|
||||
|
||||
def create_hooks
|
||||
Gitlab::Git::Repository.create_hooks(path_to_repo, Gitlab.config.gitlab_shell.hooks_path)
|
||||
end
|
||||
|
||||
def commit(ref = 'HEAD')
|
||||
return nil unless exists?
|
||||
return ref if ref.is_a?(::Commit)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix hooks not being set up properly for bare import Rake task
|
||||
merge_request:
|
||||
author:
|
||||
type: fixed
|
|
@ -63,6 +63,7 @@ module Gitlab
|
|||
log " * Created #{project.name} (#{project_full_path})".color(:green)
|
||||
|
||||
project.write_repository_config
|
||||
project.repository.create_hooks
|
||||
|
||||
ProjectCacheWorker.perform_async(project.id)
|
||||
else
|
||||
|
|
|
@ -74,14 +74,18 @@ describe Gitlab::BareRepositoryImport::Importer, repository: true do
|
|||
importer.create_project_if_needed
|
||||
end
|
||||
|
||||
it 'creates the Git repo in disk' do
|
||||
it 'creates the Git repo on disk with the proper symlink for hooks' do
|
||||
create_bare_repository("#{project_path}.git")
|
||||
|
||||
importer.create_project_if_needed
|
||||
|
||||
project = Project.find_by_full_path(project_path)
|
||||
repo_path = File.join(project.repository_storage_path, project.disk_path + '.git')
|
||||
hook_path = File.join(repo_path, 'hooks')
|
||||
|
||||
expect(File).to exist(File.join(project.repository_storage_path, project.disk_path + '.git'))
|
||||
expect(File).to exist(repo_path)
|
||||
expect(File.symlink?(hook_path)).to be true
|
||||
expect(File.readlink(hook_path)).to eq(Gitlab.config.gitlab_shell.hooks_path)
|
||||
end
|
||||
|
||||
context 'hashed storage enabled' do
|
||||
|
|
|
@ -412,6 +412,28 @@ describe Repository do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#create_hooks' do
|
||||
let(:hook_path) { File.join(repository.path_to_repo, 'hooks') }
|
||||
|
||||
it 'symlinks the global hooks directory' do
|
||||
repository.create_hooks
|
||||
|
||||
expect(File.symlink?(hook_path)).to be true
|
||||
expect(File.readlink(hook_path)).to eq(Gitlab.config.gitlab_shell.hooks_path)
|
||||
end
|
||||
|
||||
it 'replaces existing symlink with the right directory' do
|
||||
FileUtils.mkdir_p(hook_path)
|
||||
|
||||
expect(File.symlink?(hook_path)).to be false
|
||||
|
||||
repository.create_hooks
|
||||
|
||||
expect(File.symlink?(hook_path)).to be true
|
||||
expect(File.readlink(hook_path)).to eq(Gitlab.config.gitlab_shell.hooks_path)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#create_dir" do
|
||||
it "commits a change that creates a new directory" do
|
||||
expect do
|
||||
|
|
Loading…
Reference in New Issue