summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Reigel <mail@koffeinfrei.org>2017-07-06 10:17:09 +0200
committerAlexis Reigel <mail@koffeinfrei.org>2017-07-27 15:43:37 +0200
commita7d2ebe508b6dde3b3ae37c5a54fc78719b199b3 (patch)
tree9c2be2776b5346597e026ac749cd7527635ce8dc
parent4f7ba8f2861b39d3a7697eb99e3fbaaf39f32643 (diff)
downloadgitlab-ce-a7d2ebe508b6dde3b3ae37c5a54fc78719b199b3.tar.gz
simplify fetching of commit
-rw-r--r--app/models/gpg_signature.rb4
-rw-r--r--lib/gitlab/gpg/invalid_gpg_signature_updater.rb4
-rw-r--r--spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb2
-rw-r--r--spec/models/gpg_signature_spec.rb13
4 files changed, 19 insertions, 4 deletions
diff --git a/app/models/gpg_signature.rb b/app/models/gpg_signature.rb
index 4fe9c3210ff..0ef335bf8a9 100644
--- a/app/models/gpg_signature.rb
+++ b/app/models/gpg_signature.rb
@@ -5,4 +5,8 @@ class GpgSignature < ActiveRecord::Base
validates :commit_sha, presence: true
validates :project, presence: true
validates :gpg_key_primary_keyid, presence: true
+
+ def commit
+ project.commit(commit_sha)
+ end
end
diff --git a/lib/gitlab/gpg/invalid_gpg_signature_updater.rb b/lib/gitlab/gpg/invalid_gpg_signature_updater.rb
index 06e4823de32..860e1e1035c 100644
--- a/lib/gitlab/gpg/invalid_gpg_signature_updater.rb
+++ b/lib/gitlab/gpg/invalid_gpg_signature_updater.rb
@@ -10,9 +10,7 @@ module Gitlab
.where(valid_signature: false)
.where(gpg_key_primary_keyid: @gpg_key.primary_keyid)
.find_each do |gpg_signature|
- raw_commit = Gitlab::Git::Commit.find(gpg_signature.project.repository, gpg_signature.commit_sha)
- commit = ::Commit.new(raw_commit, gpg_signature.project)
- Gitlab::Gpg::Commit.new(commit).update_signature!(gpg_signature)
+ Gitlab::Gpg::Commit.new(gpg_signature.commit).update_signature!(gpg_signature)
end
end
end
diff --git a/spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb b/spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb
index 8b60b36452b..c16f15bf4bf 100644
--- a/spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb
+++ b/spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb
@@ -29,7 +29,7 @@ RSpec.describe Gitlab::Gpg::InvalidGpgSignatureUpdater do
end
before do
- allow(Gitlab::Git::Commit).to receive(:find).with(kind_of(Repository), commit_sha).and_return(raw_commit)
+ allow_any_instance_of(GpgSignature).to receive(:commit).and_return(commit)
end
context 'gpg signature did not have an associated gpg key' do
diff --git a/spec/models/gpg_signature_spec.rb b/spec/models/gpg_signature_spec.rb
index b3f84262874..b6f256e61ee 100644
--- a/spec/models/gpg_signature_spec.rb
+++ b/spec/models/gpg_signature_spec.rb
@@ -12,4 +12,17 @@ RSpec.describe GpgSignature do
it { is_expected.to validate_presence_of(:project) }
it { is_expected.to validate_presence_of(:gpg_key_primary_keyid) }
end
+
+ describe '#commit' do
+ it 'fetches the commit through the project' do
+ commit_sha = '0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33'
+ project = create :project
+ commit = create :commit, project: project
+ gpg_signature = create :gpg_signature, commit_sha: commit_sha
+
+ expect_any_instance_of(Project).to receive(:commit).with(commit_sha).and_return(commit)
+
+ gpg_signature.commit
+ end
+ end
end