summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/protected_branch.rb2
-rw-r--r--app/models/users_project.rb12
-rw-r--r--lib/gitlab/backend/gitolite.rb26
-rw-r--r--spec/lib/gitolite_spec.rb2
-rw-r--r--spec/support/stubbed_repository.rb4
5 files changed, 35 insertions, 11 deletions
diff --git a/app/models/protected_branch.rb b/app/models/protected_branch.rb
index 3308caf360a..2e7010ea9c9 100644
--- a/app/models/protected_branch.rb
+++ b/app/models/protected_branch.rb
@@ -22,7 +22,7 @@ class ProtectedBranch < ActiveRecord::Base
after_destroy :update_repository
def update_repository
- gitolite.update_repository(project)
+ project.update_repository
end
def commit
diff --git a/app/models/users_project.rb b/app/models/users_project.rb
index 3206600413c..183878cb30c 100644
--- a/app/models/users_project.rb
+++ b/app/models/users_project.rb
@@ -82,9 +82,13 @@ class UsersProject < ActiveRecord::Base
users_project.save
end
end
- Gitlab::Gitolite.new.update_repositories(Project.where(id: project_ids))
end
+ GitoliteWorker.perform_async(
+ :update_repositories,
+ project_ids
+ )
+
true
rescue
false
@@ -97,9 +101,13 @@ class UsersProject < ActiveRecord::Base
users_project.skip_git = true
users_project.destroy
end
- Gitlab::Gitolite.new.update_repositories(Project.where(id: project_ids))
end
+ GitoliteWorker.perform_async(
+ :update_repositories,
+ project_ids
+ )
+
true
rescue
false
diff --git a/lib/gitlab/backend/gitolite.rb b/lib/gitlab/backend/gitolite.rb
index d026b76f5ef..1bcf1264fa9 100644
--- a/lib/gitlab/backend/gitolite.rb
+++ b/lib/gitlab/backend/gitolite.rb
@@ -22,7 +22,12 @@ module Gitlab
end
end
- def update_repository project_id
+ # Update project config in gitolite by project id
+ #
+ # Ex.
+ # update_repository(23)
+ #
+ def update_repository(project_id)
project = Project.find(project_id)
config.update_project!(project)
end
@@ -45,6 +50,19 @@ module Gitlab
config.destroy_project!(name)
end
+ # Update projects configs in gitolite by project ids
+ #
+ # Ex.
+ # update_repositories([1, 4, 6])
+ #
+ def update_repositories(project_ids)
+ projects = Project.where(id: project_ids)
+
+ config.apply do |config|
+ config.update_projects(projects)
+ end
+ end
+
def url_to_repo path
Gitlab.config.gitolite.ssh_path_prefix + "#{path}.git"
end
@@ -53,12 +71,6 @@ module Gitlab
config.admin_all_repo!
end
- def update_repositories projects
- config.apply do |config|
- config.update_projects(projects)
- end
- end
-
alias_method :create_repository, :update_repository
end
end
diff --git a/spec/lib/gitolite_spec.rb b/spec/lib/gitolite_spec.rb
index 8075b99ed99..df6dc368820 100644
--- a/spec/lib/gitolite_spec.rb
+++ b/spec/lib/gitolite_spec.rb
@@ -20,6 +20,6 @@ describe Gitlab::Gitolite do
it "should call config update" do
gitolite_config.should_receive(:update_project!)
- gitolite.update_repository project
+ gitolite.update_repository(project.id)
end
end
diff --git a/spec/support/stubbed_repository.rb b/spec/support/stubbed_repository.rb
index e6e194d70f5..e092f8a4776 100644
--- a/spec/support/stubbed_repository.rb
+++ b/spec/support/stubbed_repository.rb
@@ -21,6 +21,10 @@ class Project
true
end
+ def destroy
+ true
+ end
+
def create
true
end