summaryrefslogtreecommitdiff
path: root/lib/gitlab/gpg
diff options
context:
space:
mode:
authorAlexis Reigel <mail@koffeinfrei.org>2017-06-15 14:22:37 +0200
committerAlexis Reigel <mail@koffeinfrei.org>2017-07-27 15:42:53 +0200
commit24671cd601e93133787ff9746fcacc3cf5d3fbf4 (patch)
treef389ee78c1e75cf5b0db017896dae56f07c61c91 /lib/gitlab/gpg
parentd48eb77a96d29260c214391c5b8979ee17250452 (diff)
downloadgitlab-ce-24671cd601e93133787ff9746fcacc3cf5d3fbf4.tar.gz
update invalid gpg signatures when key is created
Diffstat (limited to 'lib/gitlab/gpg')
-rw-r--r--lib/gitlab/gpg/invalid_gpg_signature_updater.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/gitlab/gpg/invalid_gpg_signature_updater.rb b/lib/gitlab/gpg/invalid_gpg_signature_updater.rb
new file mode 100644
index 00000000000..6511a8f8285
--- /dev/null
+++ b/lib/gitlab/gpg/invalid_gpg_signature_updater.rb
@@ -0,0 +1,19 @@
+module Gitlab
+ module Gpg
+ class InvalidGpgSignatureUpdater
+ def initialize(gpg_key)
+ @gpg_key = gpg_key
+ end
+
+ def run
+ GpgSignature
+ .where(valid_signature: false)
+ .where(gpg_key_primary_keyid: @gpg_key.primary_keyid)
+ .find_each do |gpg_signature|
+ commit = Gitlab::Git::Commit.find(gpg_signature.project.repository, gpg_signature.commit_sha)
+ Gitlab::Gpg::Commit.new(commit).update_signature!(gpg_signature)
+ end
+ end
+ end
+ end
+end