summaryrefslogtreecommitdiff
path: root/app/models/gpg_key.rb
diff options
context:
space:
mode:
authorAlexis Reigel <mail@koffeinfrei.org>2017-02-22 18:36:25 +0100
committerAlexis Reigel <mail@koffeinfrei.org>2017-07-27 15:40:41 +0200
commit87c0fd34557463528a552986a42f4ebb52d3bd56 (patch)
tree18b35c83421e8a96d4ec49bc248750d9d536b58c /app/models/gpg_key.rb
parente34cef0cd2fcf9a01d3f3b6dd215bbcc25d65d27 (diff)
downloadgitlab-ce-87c0fd34557463528a552986a42f4ebb52d3bd56.tar.gz
add / remove gpg keys to / from system keychain
Diffstat (limited to 'app/models/gpg_key.rb')
-rw-r--r--app/models/gpg_key.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/app/models/gpg_key.rb b/app/models/gpg_key.rb
index aa0e8883a47..a9f1400650c 100644
--- a/app/models/gpg_key.rb
+++ b/app/models/gpg_key.rb
@@ -19,6 +19,8 @@ class GpgKey < ActiveRecord::Base
unless: -> { errors.has_key?(:key) }
before_validation :extract_fingerprint
+ after_create :add_to_keychain
+ after_destroy :remove_from_keychain
def key=(value)
value.strip! unless value.blank?
@@ -37,4 +39,12 @@ class GpgKey < ActiveRecord::Base
# only allows one key
self.fingerprint = Gitlab::Gpg.fingerprints_from_key(key).first
end
+
+ def add_to_keychain
+ Gitlab::Gpg.add_to_keychain(key)
+ end
+
+ def remove_from_keychain
+ Gitlab::Gpg.remove_from_keychain(fingerprint)
+ end
end