diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-08-15 13:22:55 +0200 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-08-16 18:57:50 +0200 |
commit | ba7251fefd92b0ecb6365cfe55510e24c5343ac6 (patch) | |
tree | d572877f0150efa654849b97896ef769aeff6c0b /app/services | |
parent | 4a2a6d521a260981482ee8e4931ebf06cb4f5b6a (diff) | |
download | gitlab-ce-ba7251fefd92b0ecb6365cfe55510e24c5343ac6.tar.gz |
Only create commit GPG signature when necessarydm-gpg-signature-performance
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/git_push_service.rb | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/app/services/git_push_service.rb b/app/services/git_push_service.rb index ada2b64a3a6..e81a56672e2 100644 --- a/app/services/git_push_service.rb +++ b/app/services/git_push_service.rb @@ -90,8 +90,19 @@ class GitPushService < BaseService end def update_signatures - @push_commits.each do |commit| - CreateGpgSignatureWorker.perform_async(commit.sha, @project.id) + commit_shas = @push_commits.last(PROCESS_COMMIT_LIMIT).map(&:sha) + + return if commit_shas.empty? + + shas_with_cached_signatures = GpgSignature.where(commit_sha: commit_shas).pluck(:commit_sha) + commit_shas -= shas_with_cached_signatures + + return if commit_shas.empty? + + commit_shas = Gitlab::Git::Commit.shas_with_signatures(project.repository, commit_shas) + + commit_shas.each do |sha| + CreateGpgSignatureWorker.perform_async(sha, project.id) end end |