diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-19 12:08:42 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-19 12:08:42 +0300 |
commit | b76ae638462ab0f673e5915986070518dd3f9ad3 (patch) | |
tree | bdab0533383b52873be0ec0eb4d3c66598ff8b91 /lib/gitlab/x509/tag.rb | |
parent | 434373eabe7b4be9593d18a585fb763f1e5f1a6f (diff) |
Add latest changes from gitlab-org/gitlab@14-2-stable-eev14.2.0-rc42
Diffstat (limited to 'lib/gitlab/x509/tag.rb')
-rw-r--r-- | lib/gitlab/x509/tag.rb | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/lib/gitlab/x509/tag.rb b/lib/gitlab/x509/tag.rb index ad85b200130..cf24e6f62bd 100644 --- a/lib/gitlab/x509/tag.rb +++ b/lib/gitlab/x509/tag.rb @@ -4,37 +4,16 @@ require 'digest' module Gitlab module X509 - class Tag + class Tag < Gitlab::SignedTag include Gitlab::Utils::StrongMemoize - def initialize(raw_tag) - @raw_tag = raw_tag - end - def signature - signature = X509::Signature.new(signature_text, signed_text, @raw_tag.tagger.email, Time.at(@raw_tag.tagger.date.seconds)) - - return if signature.verified_signature.nil? - - signature - end - - private - - def signature_text - @raw_tag.message.slice(@raw_tag.message.index("-----BEGIN SIGNED MESSAGE-----")..-1) - rescue StandardError - nil - end - - def signed_text - # signed text is reconstructed as long as there is no specific gitaly function - %{object #{@raw_tag.target_commit.id} -type commit -tag #{@raw_tag.name} -tagger #{@raw_tag.tagger.name} <#{@raw_tag.tagger.email}> #{@raw_tag.tagger.date.seconds} #{@raw_tag.tagger.timezone} + strong_memoize(:signature) do + super -#{@raw_tag.message.gsub(/-----BEGIN SIGNED MESSAGE-----(.*)-----END SIGNED MESSAGE-----/m, "")}} + signature = X509::Signature.new(signature_text, signed_text, @tag.tagger.email, Time.at(@tag.tagger.date.seconds)) + signature unless signature.verified_signature.nil? + end end end end |