Skip to content
Snippets Groups Projects
Commit 049d4bae authored by Sean McGivern's avatar Sean McGivern
Browse files

Merge branch 'sh-allow-force-repo-create' into 'master'

Make Project#ensure_repository force create a repo

Closes gitlab-ee#2800

See merge request !12580
parents 65745f52 73f5b02b
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -1074,21 +1074,21 @@ class Project < ActiveRecord::Base
merge_requests.where(source_project_id: self.id)
end
 
def create_repository
def create_repository(force: false)
# Forked import is handled asynchronously
unless forked?
if gitlab_shell.add_repository(repository_storage_path, path_with_namespace)
repository.after_create
true
else
errors.add(:base, 'Failed to create repository via gitlab-shell')
false
end
return if forked? && !force
if gitlab_shell.add_repository(repository_storage_path, path_with_namespace)
repository.after_create
true
else
errors.add(:base, 'Failed to create repository via gitlab-shell')
false
end
end
 
def ensure_repository
create_repository unless repository_exists?
create_repository(force: true) unless repository_exists?
end
 
def repository_exists?
Loading
Loading
---
title: Make Project#ensure_repository force create a repo
merge_request:
author:
Loading
Loading
@@ -1346,7 +1346,7 @@ describe Project, models: true do
.with(project.repository_storage_path, project.path_with_namespace)
.and_return(true)
 
expect(project).to receive(:create_repository)
expect(project).to receive(:create_repository).with(force: true)
 
project.ensure_repository
end
Loading
Loading
@@ -1359,6 +1359,19 @@ describe Project, models: true do
 
project.ensure_repository
end
it 'creates the repository if it is a fork' do
expect(project).to receive(:forked?).and_return(true)
allow(project).to receive(:repository_exists?)
.and_return(false)
expect(shell).to receive(:add_repository)
.with(project.repository_storage_path, project.path_with_namespace)
.and_return(true)
project.ensure_repository
end
end
 
describe '#user_can_push_to_empty_repo?' do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment