Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-07 03:09:12 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-07 03:09:12 +0300
commit6168721025dd8e98caeb2bf6844273e6690eaf69 (patch)
tree8c4fb20d793669e488a739bc9951dab8b363eed4 /lib/gitlab/signed_commit.rb
parenta89cb5cbdd832d4d9e80517973aceda6bc0a3856 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/signed_commit.rb')
-rw-r--r--lib/gitlab/signed_commit.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/gitlab/signed_commit.rb b/lib/gitlab/signed_commit.rb
new file mode 100644
index 00000000000..809e0a3f034
--- /dev/null
+++ b/lib/gitlab/signed_commit.rb
@@ -0,0 +1,34 @@
+# 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