extract common method
This commit is contained in:
parent
b66e3726dc
commit
deb474b413
2 changed files with 30 additions and 21 deletions
|
@ -8,10 +8,8 @@ module Gitlab
|
|||
def add(key)
|
||||
GPGME::Key.import(key)
|
||||
end
|
||||
end
|
||||
|
||||
def fingerprints_from_key(key)
|
||||
using_tmp_keychain do
|
||||
def fingerprints_from_key(key)
|
||||
import = GPGME::Key.import(key)
|
||||
|
||||
return [] if import.imported == 0
|
||||
|
@ -20,13 +18,15 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
|
||||
def fingerprints_from_key(key)
|
||||
using_tmp_keychain do
|
||||
CurrentKeyChain.fingerprints_from_key(key)
|
||||
end
|
||||
end
|
||||
|
||||
def primary_keyids_from_key(key)
|
||||
using_tmp_keychain do
|
||||
import = GPGME::Key.import(key)
|
||||
|
||||
return [] if import.imported == 0
|
||||
|
||||
fingerprints = import.imports.map(&:fingerprint)
|
||||
fingerprints = CurrentKeyChain.fingerprints_from_key(key)
|
||||
|
||||
GPGME::Key.find(:public, fingerprints).map { |raw_key| raw_key.primary_subkey.keyid }
|
||||
end
|
||||
|
@ -34,11 +34,7 @@ module Gitlab
|
|||
|
||||
def emails_from_key(key)
|
||||
using_tmp_keychain do
|
||||
import = GPGME::Key.import(key)
|
||||
|
||||
return [] if import.imported == 0
|
||||
|
||||
fingerprints = import.imports.map(&:fingerprint)
|
||||
fingerprints = CurrentKeyChain.fingerprints_from_key(key)
|
||||
|
||||
GPGME::Key.find(:public, fingerprints).flat_map { |raw_key| raw_key.uids.map(&:email) }
|
||||
end
|
||||
|
|
|
@ -2,16 +2,15 @@ require 'rails_helper'
|
|||
|
||||
describe Gitlab::Gpg do
|
||||
describe '.fingerprints_from_key' do
|
||||
it 'returns the fingerprint' do
|
||||
expect(
|
||||
described_class.fingerprints_from_key(GpgHelpers::User1.public_key)
|
||||
).to eq [GpgHelpers::User1.fingerprint]
|
||||
before do
|
||||
# make sure that each method is using the temporary keychain
|
||||
expect(described_class).to receive(:using_tmp_keychain).and_call_original
|
||||
end
|
||||
|
||||
it 'returns an empty array when the key is invalid' do
|
||||
expect(
|
||||
described_class.fingerprints_from_key('bogus')
|
||||
).to eq []
|
||||
it 'returns CurrentKeyChain.fingerprints_from_key' do
|
||||
expect(Gitlab::Gpg::CurrentKeyChain).to receive(:fingerprints_from_key).with(GpgHelpers::User1.public_key)
|
||||
|
||||
described_class.fingerprints_from_key(GpgHelpers::User1.public_key)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -65,4 +64,18 @@ describe Gitlab::Gpg::CurrentKeyChain do
|
|||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe '.fingerprints_from_key' do
|
||||
it 'returns the fingerprint' do
|
||||
expect(
|
||||
described_class.fingerprints_from_key(GpgHelpers::User1.public_key)
|
||||
).to eq [GpgHelpers::User1.fingerprint]
|
||||
end
|
||||
|
||||
it 'returns an empty array when the key is invalid' do
|
||||
expect(
|
||||
described_class.fingerprints_from_key('bogus')
|
||||
).to eq []
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue