Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Reigel <mail@koffeinfrei.org>2017-06-15 10:16:50 +0300
committerAlexis Reigel <mail@koffeinfrei.org>2017-07-27 16:42:53 +0300
commit8c4b6a32fcc5786383904fa1d5cf8b317bec7a7f (patch)
tree12b0f04e57b4d5d076ec1715f7d2d2f34dce81d1
parent69e511c4c2a0409fa69658cf95bf5c4072b2b2d0 (diff)
bail if the commit has no signature
-rw-r--r--app/models/commit.rb6
-rw-r--r--lib/gitlab/gpg/commit.rb6
-rw-r--r--spec/lib/gitlab/gpg/commit_spec.rb6
3 files changed, 11 insertions, 7 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 6c5556902ec..ed8b9a79a7a 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -242,11 +242,7 @@ class Commit
cached_signature = GpgSignature.find_by(commit_sha: sha)
return cached_signature if cached_signature.present?
- gpg_commit = Gitlab::Gpg::Commit.new(self)
-
- return unless gpg_commit.has_signature?
-
- @signature = gpg_commit.signature
+ @signature = Gitlab::Gpg::Commit.new(self).signature
end
def revert_branch_name
diff --git a/lib/gitlab/gpg/commit.rb b/lib/gitlab/gpg/commit.rb
index f60e5125c13..f363652745f 100644
--- a/lib/gitlab/gpg/commit.rb
+++ b/lib/gitlab/gpg/commit.rb
@@ -10,10 +10,12 @@ module Gitlab
end
def has_signature?
- @signature_text && @signed_text
+ !!(@signature_text && @signed_text)
end
def signature
+ return unless has_signature?
+
Gitlab::Gpg.using_tmp_keychain do
# first we need to get the keyid from the signature to query the gpg
# key belonging to the keyid.
@@ -43,7 +45,7 @@ module Gitlab
project: commit.project,
gpg_key: gpg_key,
gpg_key_primary_keyid: gpg_key&.primary_keyid,
- valid_signature: !!(gpg_key && verified_signature&.valid?)
+ valid_signature: !!(gpg_key && verified_signature.valid?)
)
end
end
diff --git a/spec/lib/gitlab/gpg/commit_spec.rb b/spec/lib/gitlab/gpg/commit_spec.rb
index 8b1747eebcc..c4d92b8bbbf 100644
--- a/spec/lib/gitlab/gpg/commit_spec.rb
+++ b/spec/lib/gitlab/gpg/commit_spec.rb
@@ -4,6 +4,12 @@ RSpec.describe Gitlab::Gpg::Commit do
describe '#signature' do
let!(:project) { create :project, :repository, path: 'sample-project' }
+ context 'unisgned commit' do
+ it 'returns nil' do
+ expect(described_class.new(project.commit).signature).to be_nil
+ end
+ end
+
context 'known public key' do
it 'returns a valid signature' do
gpg_key = create :gpg_key, key: GpgHelpers::User1.public_key