35 lines
737 B
Ruby
35 lines
737 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
class SignedCommit
|
||
|
include Gitlab::Utils::StrongMemoize
|
||
|
|
||
|
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
|