summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-21 15:08:26 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-21 15:08:26 +0000
commitc859c3bfd242288065fe5e2d887f7204f09e2335 (patch)
tree10febaf8774a3ea6ab3773c0dd97658d673fb280 /app/services
parent28ce39a3e0e7b47e53939a15fb823af9c433327a (diff)
downloadgitlab-ce-c859c3bfd242288065fe5e2d887f7204f09e2335.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services')
-rw-r--r--app/services/concerns/akismet_methods.rb11
-rw-r--r--app/services/merge_requests/mergeability_check_service.rb20
-rw-r--r--app/services/pages_domains/create_acme_order_service.rb5
-rw-r--r--app/services/spam_service.rb2
4 files changed, 21 insertions, 17 deletions
diff --git a/app/services/concerns/akismet_methods.rb b/app/services/concerns/akismet_methods.rb
index 1cbcf0d47b9..508a165b065 100644
--- a/app/services/concerns/akismet_methods.rb
+++ b/app/services/concerns/akismet_methods.rb
@@ -2,16 +2,7 @@
module AkismetMethods
def spammable_owner
- @user ||= User.find(spammable_owner_id)
- end
-
- def spammable_owner_id
- @owner_id ||=
- if spammable.respond_to?(:author_id)
- spammable.author_id
- elsif spammable.respond_to?(:creator_id)
- spammable.creator_id
- end
+ @user ||= User.find(spammable.author_id)
end
def akismet
diff --git a/app/services/merge_requests/mergeability_check_service.rb b/app/services/merge_requests/mergeability_check_service.rb
index 962e2327b3e..5b79e4d01f2 100644
--- a/app/services/merge_requests/mergeability_check_service.rb
+++ b/app/services/merge_requests/mergeability_check_service.rb
@@ -12,6 +12,13 @@ module MergeRequests
@merge_request = merge_request
end
+ def async_execute
+ return service_error if service_error
+ return unless merge_request.mark_as_checking
+
+ MergeRequestMergeabilityCheckWorker.perform_async(merge_request.id)
+ end
+
# Updates the MR merge_status. Whenever it switches to a can_be_merged state,
# the merge-ref is refreshed.
#
@@ -30,8 +37,7 @@ module MergeRequests
# and the merge-ref is synced. Success in case of being/becoming mergeable,
# error otherwise.
def execute(recheck: false, retry_lease: true)
- return ServiceResponse.error(message: 'Invalid argument') unless merge_request
- return ServiceResponse.error(message: 'Unsupported operation') if Gitlab::Database.read_only?
+ return service_error if service_error
return check_mergeability(recheck) unless merge_ref_auto_sync_lock_enabled?
in_write_lock(retry_lease: retry_lease) do |retried|
@@ -155,5 +161,15 @@ module MergeRequests
def merge_ref_auto_sync_lock_enabled?
Feature.enabled?(:merge_ref_auto_sync_lock, project, default_enabled: true)
end
+
+ def service_error
+ strong_memoize(:service_error) do
+ if !merge_request
+ ServiceResponse.error(message: 'Invalid argument')
+ elsif Gitlab::Database.read_only?
+ ServiceResponse.error(message: 'Unsupported operation')
+ end
+ end
+ end
end
end
diff --git a/app/services/pages_domains/create_acme_order_service.rb b/app/services/pages_domains/create_acme_order_service.rb
index 8eab5c52432..c600f497fa5 100644
--- a/app/services/pages_domains/create_acme_order_service.rb
+++ b/app/services/pages_domains/create_acme_order_service.rb
@@ -3,9 +3,6 @@
module PagesDomains
class CreateAcmeOrderService
attr_reader :pages_domain
- # TODO: remove this hack after https://gitlab.com/gitlab-org/gitlab/issues/30146 is implemented
- # This makes GitLab automatically retry the certificate obtaining process every 2 hours if process wasn't finished
- SHORT_EXPIRATION_DELAY = 2.hours
def initialize(pages_domain)
@pages_domain = pages_domain
@@ -20,7 +17,7 @@ module PagesDomains
private_key = OpenSSL::PKey::RSA.new(4096)
saved_order = pages_domain.acme_orders.create!(
url: order.url,
- expires_at: [order.expires, SHORT_EXPIRATION_DELAY.from_now].min,
+ expires_at: order.expires,
private_key: private_key.to_pem,
challenge_token: challenge.token,
diff --git a/app/services/spam_service.rb b/app/services/spam_service.rb
index ba9b812a01c..242c0ede57a 100644
--- a/app/services/spam_service.rb
+++ b/app/services/spam_service.rb
@@ -53,7 +53,7 @@ class SpamService
def create_spam_log(api)
@spam_log = SpamLog.create!(
{
- user_id: spammable_owner_id,
+ user_id: spammable.author_id,
title: spammable.spam_title,
description: spammable.spam_description,
source_ip: options[:ip_address],