summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/models/key.rb5
-rw-r--r--app/models/protected_branch.rb4
-rw-r--r--app/models/users_project.rb6
-rw-r--r--app/observers/key_observer.rb7
-rw-r--r--app/roles/git_host.rb5
-rw-r--r--app/roles/git_merge.rb2
-rw-r--r--app/roles/repository.rb8
-rw-r--r--app/roles/ssh_key.rb18
8 files changed, 25 insertions, 30 deletions
diff --git a/app/models/key.rb b/app/models/key.rb
index cfcb1f63c26..8b61675a444 100644
--- a/app/models/key.rb
+++ b/app/models/key.rb
@@ -1,7 +1,6 @@
require 'digest/md5'
class Key < ActiveRecord::Base
- include SshKey
belongs_to :user
belongs_to :project
@@ -50,6 +49,10 @@ class Key < ActiveRecord::Base
user.projects
end
end
+
+ def last_deploy?
+ Key.where(identifier: identifier).count == 0
+ end
end
# == Schema Information
#
diff --git a/app/models/protected_branch.rb b/app/models/protected_branch.rb
index 4da1432c1a9..7c30f7a0b6d 100644
--- a/app/models/protected_branch.rb
+++ b/app/models/protected_branch.rb
@@ -1,4 +1,6 @@
class ProtectedBranch < ActiveRecord::Base
+ include GitHost
+
belongs_to :project
validates_presence_of :project_id
validates_presence_of :name
@@ -7,7 +9,7 @@ class ProtectedBranch < ActiveRecord::Base
after_destroy :update_repository
def update_repository
- Gitlab::GitHost.system.update_project(project.path, project)
+ git_host.update_repository(project)
end
def commit
diff --git a/app/models/users_project.rb b/app/models/users_project.rb
index 36e6d9045b6..7d1729343bb 100644
--- a/app/models/users_project.rb
+++ b/app/models/users_project.rb
@@ -1,4 +1,6 @@
class UsersProject < ActiveRecord::Base
+ include GitHost
+
GUEST = 10
REPORTER = 20
DEVELOPER = 30
@@ -58,9 +60,7 @@ class UsersProject < ActiveRecord::Base
end
def update_repository
- Gitlab::GitHost.system.new.configure do |c|
- c.update_project(project.path, project)
- end
+ git_host.update_repository(project)
end
def project_access_human
diff --git a/app/observers/key_observer.rb b/app/observers/key_observer.rb
index fac53a67925..a3f17bdec92 100644
--- a/app/observers/key_observer.rb
+++ b/app/observers/key_observer.rb
@@ -1,9 +1,12 @@
class KeyObserver < ActiveRecord::Observer
+ include GitHost
+
def after_save(key)
- key.update_repository
+ git_host.set_key(key.identifier, key.key, key.projects)
end
def after_destroy(key)
- key.repository_delete_key
+ return if key.is_deploy_key && !key.last_deploy?
+ git_host.remove_key(key.identifier, key.projects)
end
end
diff --git a/app/roles/git_host.rb b/app/roles/git_host.rb
new file mode 100644
index 00000000000..aa620f77ea4
--- /dev/null
+++ b/app/roles/git_host.rb
@@ -0,0 +1,5 @@
+module GitHost
+ def git_host
+ Gitlab::Gitolite.new
+ end
+end
diff --git a/app/roles/git_merge.rb b/app/roles/git_merge.rb
deleted file mode 100644
index 95e5942fb00..00000000000
--- a/app/roles/git_merge.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-module GitMerge
-end
diff --git a/app/roles/repository.rb b/app/roles/repository.rb
index 17f524991db..5fa950db6d6 100644
--- a/app/roles/repository.rb
+++ b/app/roles/repository.rb
@@ -1,4 +1,6 @@
module Repository
+ include GitHost
+
def valid_repo?
repo
rescue
@@ -48,7 +50,7 @@ module Repository
end
def url_to_repo
- Gitlab::GitHost.url_to_repo(path)
+ git_host.url_to_repo(path)
end
def path_to_repo
@@ -56,11 +58,11 @@ module Repository
end
def update_repository
- Gitlab::GitHost.system.update_project(path, self)
+ git_host.update_repository(self)
end
def destroy_repository
- Gitlab::GitHost.system.destroy_project(self)
+ git_host.remove_repository(self)
end
def repo_exists?
diff --git a/app/roles/ssh_key.rb b/app/roles/ssh_key.rb
deleted file mode 100644
index 5e1d2c23d15..00000000000
--- a/app/roles/ssh_key.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-module SshKey
- def update_repository
- Gitlab::GitHost.system.new.configure do |c|
- c.update_keys(identifier, key)
- c.update_projects(projects)
- end
- end
-
- def repository_delete_key
- Gitlab::GitHost.system.new.configure do |c|
- #delete key file is there is no identically deploy keys
- if !is_deploy_key || Key.where(identifier: identifier).count() == 0
- c.delete_key(identifier)
- end
- c.update_projects(projects)
- end
- end
-end