2020-02-06 19:09:12 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Gitlab
|
|
|
|
class SignedCommit
|
|
|
|
include Gitlab::Utils::StrongMemoize
|
|
|
|
|
2020-04-21 11:21:10 -04:00
|
|
|
delegate :id, to: :@commit
|
|
|
|
|
2020-02-06 19:09:12 -05:00
|
|
|
def initialize(commit)
|
|
|
|
@commit = commit
|
|
|
|
|
|
|
|
if commit.project
|
|
|
|
repo = commit.project.repository.raw_repository
|
|
|
|
@signature_data = Gitlab::Git::Commit.extract_signature_lazily(repo, commit.sha || commit.id)
|
|
|
|
end
|
|
|
|
|
|
|
|
lazy_signature
|
|
|
|
end
|
|
|
|
|
|
|
|
def signature
|
|
|
|
return unless @commit.has_signature?
|
|
|
|
end
|
|
|
|
|
|
|
|
def signature_text
|
|
|
|
strong_memoize(:signature_text) do
|
|
|
|
@signature_data.itself ? @signature_data[0] : nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def signed_text
|
|
|
|
strong_memoize(:signed_text) do
|
|
|
|
@signature_data.itself ? @signature_data[1] : nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|