Initial deploy_key feature commit
This commit is contained in:
parent
53ce00f74a
commit
723104c45f
16 changed files with 222 additions and 1 deletions
49
app/models/deploy_key.rb
Normal file
49
app/models/deploy_key.rb
Normal file
|
@ -0,0 +1,49 @@
|
|||
class DeployKey < ActiveRecord::Base
|
||||
belongs_to :project
|
||||
|
||||
validates :title,
|
||||
:presence => true,
|
||||
:length => { :within => 0..255 }
|
||||
|
||||
validates :key,
|
||||
:presence => true,
|
||||
:uniqueness => true,
|
||||
:length => { :within => 0..5000 }
|
||||
|
||||
before_save :set_identifier
|
||||
after_save :update_repository
|
||||
after_destroy :repository_delete_key
|
||||
|
||||
def set_identifier
|
||||
self.identifier = "deploy_#{project.code}_#{Time.now.to_i}"
|
||||
end
|
||||
|
||||
def update_repository
|
||||
Gitlabhq::GitHost.system.new.configure do |c|
|
||||
c.update_keys(identifier, key)
|
||||
c.update_project(project)
|
||||
end
|
||||
end
|
||||
|
||||
def repository_delete_key
|
||||
Gitlabhq::GitHost.system.new.configure do |c|
|
||||
c.delete_key(identifier)
|
||||
c.update_project(project)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: keys
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# project_id :integer not null
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
# key :text
|
||||
# title :string(255)
|
||||
# identifier :string(255)
|
||||
#
|
||||
|
||||
|
|
@ -14,6 +14,7 @@ class Project < ActiveRecord::Base
|
|||
has_many :users, :through => :users_projects
|
||||
has_many :notes, :dependent => :destroy
|
||||
has_many :snippets, :dependent => :destroy
|
||||
has_many :deploy_keys, :dependent => :destroy
|
||||
|
||||
acts_as_taggable
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue