Skip to content
Snippets Groups Projects

GPG signed commits

Merged Alexis Reigel requested to merge siemens/gitlab-ce:feature/gpg-signed-commits into master
6 files
+ 9
190
Compare changes
  • Side-by-side
  • Inline
Files
6
+ 1
25
@@ -21,9 +21,7 @@ class GpgKey < ActiveRecord::Base
unless: -> { errors.has_key?(:key) }
before_validation :extract_fingerprint
after_create :synchronize_keychain
after_create :notify_user
after_destroy :synchronize_keychain
def key=(value)
value.strip! unless value.blank?
@@ -34,29 +32,15 @@ def emails
@emails ||= Gitlab::Gpg.emails_from_key(key)
end
def emails_in_keychain
@emails_in_keychain ||= Gitlab::Gpg::CurrentKeyChain.emails(fingerprint)
end
def emails_with_verified_status
emails.map do |email|
[
email,
email == user.email && emails_in_keychain.include?(email)
email == user.email
]
end
end
def synchronize_keychain
if emails.include?(user.email)
add_to_keychain
else
remove_from_keychain
end
@emails_in_keychain = nil
end
private
def extract_fingerprint
@@ -65,14 +49,6 @@ def extract_fingerprint
self.fingerprint = Gitlab::Gpg.fingerprints_from_key(key).first
end
def add_to_keychain
Gitlab::Gpg::CurrentKeyChain.add(key)
end
def remove_from_keychain
Gitlab::Gpg::CurrentKeyChain.remove(fingerprint)
end
def notify_user
run_after_commit { NotificationService.new.new_gpg_key(self) }
end
Loading