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
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/gitlab.yml.example5
-rw-r--r--config/initializers/devise_dynamic_password_length_validation.rb37
-rw-r--r--config/initializers/forbid_sidekiq_in_transactions.rb2
-rw-r--r--config/initializers/sentry.rb2
-rw-r--r--config/mail_room.yml2
5 files changed, 46 insertions, 2 deletions
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index a7b0a0f0b62..5ac9b7ee6e5 100644
--- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example
@@ -181,6 +181,11 @@ production: &base
mailbox: "inbox"
# The IDLE command timeout.
idle_timeout: 60
+ # The log file path for the structured log file.
+ # Since `mail_room` is run independently of Rails, an absolute path is preferred.
+ # The default is 'log/mail_room_json.log' relative to the root of the Rails app.
+ #
+ # log_path: log/mail_room_json.log
## Build Artifacts
artifacts:
diff --git a/config/initializers/devise_dynamic_password_length_validation.rb b/config/initializers/devise_dynamic_password_length_validation.rb
new file mode 100644
index 00000000000..e71b28bc495
--- /dev/null
+++ b/config/initializers/devise_dynamic_password_length_validation.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+# Discard the default Devise length validation from the `User` model.
+
+# This needs to be discarded because the length validation provided by Devise does not
+# support dynamically checking for min and max lengths.
+
+# A new length validation has been added to the User model instead, to keep supporting
+# dynamic password length validations, like:
+
+# validates :password, length: { maximum: proc { password_length.max }, minimum: proc { password_length.min } }, allow_blank: true
+
+def length_validator_supports_dynamic_length_checks?(validator)
+ validator.options[:minimum].is_a?(Proc) &&
+ validator.options[:maximum].is_a?(Proc)
+end
+
+# Get the in-built Devise validator on password length.
+password_length_validator = User.validators_on(:password).find do |validator|
+ validator.kind == :length
+end
+
+# This initializer can be removed as soon as https://github.com/plataformatec/devise/pull/5166
+# is merged into Devise.
+if length_validator_supports_dynamic_length_checks?(password_length_validator)
+ raise "Devise now supports dynamic length checks, please remove the monkey patch in #{__FILE__}"
+else
+ # discard the in-built length validator by always returning true
+ def password_length_validator.validate(*_)
+ true
+ end
+
+ # add a custom password length validator with support for dynamic length validation.
+ User.class_eval do
+ validates :password, length: { maximum: proc { password_length.max }, minimum: proc { password_length.min } }, allow_blank: true
+ end
+end
diff --git a/config/initializers/forbid_sidekiq_in_transactions.rb b/config/initializers/forbid_sidekiq_in_transactions.rb
index bd59fd4ab90..9bade443aae 100644
--- a/config/initializers/forbid_sidekiq_in_transactions.rb
+++ b/config/initializers/forbid_sidekiq_in_transactions.rb
@@ -29,7 +29,7 @@ module Sidekiq
MSG
rescue Sidekiq::Worker::EnqueueFromTransactionError => e
::Rails.logger.error(e.message) if ::Rails.env.production?
- Gitlab::Sentry.track_and_raise_for_dev_exception(e)
+ Gitlab::ErrorTracking.track_and_raise_for_dev_exception(e)
end
end
diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb
index cebb0edf275..a1eddd6a2c2 100644
--- a/config/initializers/sentry.rb
+++ b/config/initializers/sentry.rb
@@ -2,4 +2,4 @@
require 'gitlab/current_settings'
-Gitlab::Sentry.configure
+Gitlab::ErrorTracking.configure
diff --git a/config/mail_room.yml b/config/mail_room.yml
index c3a5be8d38c..75024c2b2e1 100644
--- a/config/mail_room.yml
+++ b/config/mail_room.yml
@@ -13,6 +13,8 @@
:email: <%= config[:user].to_json %>
:password: <%= config[:password].to_json %>
:idle_timeout: <%= config[:idle_timeout].to_json %>
+ :logger:
+ :log_path: <%= config[:log_path].to_json %>
:name: <%= config[:mailbox].to_json %>