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